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

availableused 的平台特定计算方式:

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] 则设计用于触发器。

参见

1.关于不同操作系统内存计算的详细信息