| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- package mem
- import (
- "encoding/json"
- "github.com/gofiber/fiber/v2/internal/gopsutil/common"
- )
- //lint:ignore U1000 we need this elsewhere
- var invoke common.Invoker = common.Invoke{} //nolint:all
- // Memory usage statistics. Total, Available and Used contain numbers of bytes
- // for human consumption.
- //
- // The other fields in this struct contain kernel specific values.
- type VirtualMemoryStat struct {
- // Total amount of RAM on this system
- Total uint64 `json:"total"`
- // RAM available for programs to allocate
- //
- // This value is computed from the kernel specific values.
- Available uint64 `json:"available"`
- // RAM used by programs
- //
- // This value is computed from the kernel specific values.
- Used uint64 `json:"used"`
- // Percentage of RAM used by programs
- //
- // This value is computed from the kernel specific values.
- UsedPercent float64 `json:"usedPercent"`
- // This is the kernel's notion of free memory; RAM chips whose bits nobody
- // cares about the value of right now. For a human consumable number,
- // Available is what you really want.
- Free uint64 `json:"free"`
- // OS X / BSD specific numbers:
- // http://www.macyourself.com/2010/02/17/what-is-free-wired-active-and-inactive-system-memory-ram/
- Active uint64 `json:"active"`
- Inactive uint64 `json:"inactive"`
- Wired uint64 `json:"wired"`
- // FreeBSD specific numbers:
- // https://reviews.freebsd.org/D8467
- Laundry uint64 `json:"laundry"`
- // Linux specific numbers
- // https://www.centos.org/docs/5/html/5.1/Deployment_Guide/s2-proc-meminfo.html
- // https://www.kernel.org/doc/Documentation/filesystems/proc.txt
- // https://www.kernel.org/doc/Documentation/vm/overcommit-accounting
- Buffers uint64 `json:"buffers"`
- Cached uint64 `json:"cached"`
- Writeback uint64 `json:"writeback"`
- Dirty uint64 `json:"dirty"`
- WritebackTmp uint64 `json:"writebacktmp"`
- Shared uint64 `json:"shared"`
- Slab uint64 `json:"slab"`
- SReclaimable uint64 `json:"sreclaimable"`
- SUnreclaim uint64 `json:"sunreclaim"`
- PageTables uint64 `json:"pagetables"`
- SwapCached uint64 `json:"swapcached"`
- CommitLimit uint64 `json:"commitlimit"`
- CommittedAS uint64 `json:"committedas"`
- HighTotal uint64 `json:"hightotal"`
- HighFree uint64 `json:"highfree"`
- LowTotal uint64 `json:"lowtotal"`
- LowFree uint64 `json:"lowfree"`
- SwapTotal uint64 `json:"swaptotal"`
- SwapFree uint64 `json:"swapfree"`
- Mapped uint64 `json:"mapped"`
- VMallocTotal uint64 `json:"vmalloctotal"`
- VMallocUsed uint64 `json:"vmallocused"`
- VMallocChunk uint64 `json:"vmallocchunk"`
- HugePagesTotal uint64 `json:"hugepagestotal"`
- HugePagesFree uint64 `json:"hugepagesfree"`
- HugePageSize uint64 `json:"hugepagesize"`
- }
- type SwapMemoryStat struct {
- Total uint64 `json:"total"`
- Used uint64 `json:"used"`
- Free uint64 `json:"free"`
- UsedPercent float64 `json:"usedPercent"`
- Sin uint64 `json:"sin"`
- Sout uint64 `json:"sout"`
- PgIn uint64 `json:"pgin"`
- PgOut uint64 `json:"pgout"`
- PgFault uint64 `json:"pgfault"`
- // Linux specific numbers
- // https://www.kernel.org/doc/Documentation/cgroup-v2.txt
- PgMajFault uint64 `json:"pgmajfault"`
- }
- func (m VirtualMemoryStat) String() string {
- s, _ := json.Marshal(m)
- return string(s)
- }
- func (m SwapMemoryStat) String() string {
- s, _ := json.Marshal(m)
- return string(s)
- }
|