package mem import ( "encoding/json" ) // 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:"used_percent"` // 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"` // Linux specific numbers // https://www.centos.org/docs/5/html/5.1/Deployment_Guide/s2-proc-meminfo.html Buffers uint64 `json:"buffers"` Cached uint64 `json:"cached"` } type SwapMemoryStat struct { Total uint64 `json:"total"` Used uint64 `json:"used"` Free uint64 `json:"free"` UsedPercent float64 `json:"used_percent"` Sin uint64 `json:"sin"` Sout uint64 `json:"sout"` } func (m VirtualMemoryStat) String() string { s, _ := json.Marshal(m) return string(s) } func (m SwapMemoryStat) String() string { s, _ := json.Marshal(m) return string(s) }