本节提供有关agent监控项的vm.memory.size[<mode>]
参数更多详细信息和特定于平台的信息 .
其中一些参数是特定于平台的,可能在您的平台上不可用。 参考关于平台支持监控项详细信息。
特定平台的available和used的计算:
平台 * | "available"** * | "used"** |
---|---|---|
AIX | free + cached | real memory in use |
FreeBSD | inactive + cached + free | active + wired + cached |
HP UX | free | total - free |
Linux<3.14 | free + buffers + cached | total - free |
Linux 3.14+ (也支持RHEL 7的3.10内核) Note |
/proc/meminfo, 参考"MemAvailable"在Linux kernel详细文档。 total -hat free + buffers + cached 不等于 'available' 由于不是所有页面缓存都可以释放,计算中使用的水位很低。 | free |
NetBSD | inactive + execpages + file + free | total - free |
OpenBSD | inactive + free + cached | active + wired |
OSX | inactive + free | active + wired |
Solaris | free | total - free |
Win32 | free | total - free |
vm.memory.size[used] 和 vm.memory.size[available] 的和不是必需等于总内存。 例如, 在FreeBSD中 active, inactive, wired, cached被认为是使用的内存, 因为他们存储一些有用的信息。
同样,inactive, cached, free 也被认为是可用内存, 因为这些内存可以立即被分配给需要更多内存的线程。
所以不活动的内存是同时可以是使用和可用的。 正因为如此, 监控项vm.memory.size[used] 只用来获得信息, 监控项 vm.memory.size[available] 在触发器中使用。