On this page
1 vm.memory.size 参数
概述
本节提供 vm.memory.size[<mode>] agent 监控项的一些参数详细信息。
参数
以下参数可用于此监控项:
- active - 当前正在使用或最近刚使用过的内存,因此它位于 RAM 中
- anon - 不与文件关联的内存(无法从文件中重新读取)
- available - 可用内存,根据平台不同采用不同的计算方式(见下表)
- buffers - 用于文件系统元数据等内容的缓存
- cached - 各类内容的缓存
- exec - 可执行代码,通常来自(程序)文件
- file - 最近访问文件内容的缓存
- free - 可立即提供给任何请求内存的实体使用的内存
- inactive - 被标记为未使用的内存
- pavailable -
'available'内存占'total'的百分比(计算方式为available/total*100) - pinned - 与
'wired'相同 - pused -
'used'内存占'total'的百分比(计算方式为used/total*100) - shared - 可被多个进程同时访问的内存
- slab - 内核为缓存其自身使用的数据结构而占用的内存总量
- total - 可用的物理内存总量
- used - 已用内存,根据平台不同采用不同的计算方式(见下表)
- wired - 被标记为始终驻留在 RAM 中的内存。它永远不会被移到磁盘。
其中一些参数是平台特定的,在您的平台上可能不可用。详情请参见 Zabbix agent items。
available 和 used 的平台特定计算方式:
| Platform | "available" | "used" |
|---|---|---|
| AIX | free + cached | 正在使用的实际内存 |
| 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) |
/proc/meminfo,详情请参见 Linux 内核文档中的 “MemAvailable”。 请注意,由于并非所有页缓存都可以释放,且计算中使用了低水位线,因此 free + buffers + cached 不再等于 'available'。 |
total - 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] 的总和不一定等于 total。例如,在 FreeBSD 上:
* active、inactive、wired、cached 内存被视为已用,因为它们存储了一些有用的信息。
* 同时,inactive、cached、free 内存又被视为可用,因为这些类型的内存可以立即分配给请求更多内存的进程。
因此,inactive 内存会同时被视为已用和可用。正因如此,vm.memory.size[used] 监控项仅用于提供信息,而 vm.memory.size[available] 则设计用于触发器。