memtype 参数在 Linux、AIX、FreeBSD 和 Solaris 平台上受支持。
所有这些平台均支持 'memtype' 的三个常见值:pmem
、rss
和 vsize
。此外,某些平台还支持特定于平台的 'memtype' 值。
请参见下表中 AIX 系统上 'memtype' 参数支持的值。
支持的值 | 描述 | procentry64 结构中的来源 | 尝试兼容的目标 |
---|---|---|---|
vsize 脚注 | 虚拟 memory 大小 | pi_size | |
pmem | 实际内存使用百分比 | pi_prm | ps -o pmem |
rss | 常驻内存集大小 | pi_trss + pi_drss | ps -o rssize |
size | 进程大小(代码 + 数据) | pi_dvm | "ps gvw" SIZE 列 |
dsize | 数据大小 | pi_dsize | |
tsize | 文本(代码)大小 | pi_tsize | "ps gvw" TSIZ 列 |
sdsize | 来自共享库的数据大小 | pi_sdsize | |
drss | 数据常驻内存集大小 | pi_drss | |
trss | 文本常驻内存集大小 | pi_trss |
AIX 的注意事项:
1。在为 AIX 上的 proc.mem[] 监控项 键选择参数时,请尽量指定精确的进程选择条件。否则,可能会将不需要的进程计入 proc.mem[] 的结果中。
示例:
$ zabbix_agentd -t proc.mem[,,,NonExistingProcess,rss]
proc.mem[,,,NonExistingProcess,rss] [u|2879488]
此示例表明,仅指定命令行(匹配的正则表达式)参数会导致 Zabbix agent 自身被统计到结果中,这可能并非您所期望的结果。
2。不要使用“ps -ef”来浏览进程——它仅显示非内核进程。请使用“ps -Af”来查看所有将被Zabbix agent看到的进程。
3。让我们通过“topasrec”的示例来了解Zabbix agent的proc.mem[]如何选择进程。
$ ps -Af | grep topasrec
root 10747984 1 0 Mar 16 - 0:00 /usr/bin/topasrec -L -s 300 -R 1 -r 6 -o /var/perf daily/ -ypersistent=1 -O type=bin -ystart_time=04:08:54,Mar16,2023
proc.mem[]具有以下参数:
proc.mem[<name>,<user>,<mode>,<cmdline>,<memtype>]
第一个条件是进程名称(参数 <name>)。在我们的示例中,Zabbix agent 将其视为 'topasrec'。为了匹配,你需要指定 'topasrec' 或者留空。
第二个条件是用户名(参数 <user>)。为了匹配,你需要指定 'root' 或者留空。
第三个用于进程选择的条件是参数 <cmdline>。Zabbix agent 将看到其值为 '/usr/bin/topasrec -L -s 300 -R 1 -r 6 -o /var/perf/daily/ -ypersistent=1 -O type=bin -ystart_time=04:08:54,Mar16,2023'。为了匹配,你需要指定一个与此匹配的正则表达式 string 或者留空。
参数 <mode> 和 <memtype> 将在使用上述三个条件后应用。
请查看下表中 FreeBSD 中 'memtype' 参数支持的值。
支持的值 | 描述 | 来自 kinfo_proc 结构的源 | 尝试与以下命令兼容 |
---|---|---|---|
vsize | 虚拟 memory 大小 | kp_eproc.e_vm.vm_map.size 或 ki_size | ps -o vsz |
pmem | 实际内存的百分比 | 由 rss 计算得出 | ps -o pmem |
rss | 常驻集大小 | kp_eproc.e_vm.vm_rssize 或 ki_rssize | ps -o rss |
size 脚注 | 进程大小(代码 + 数据 + 堆栈) | tsize + dsize + ssize | |
tsize | 文本(代码)大小 | kp_eproc.e_vm.vm_tsize 或 ki_tsize | ps -o tsiz |
dsize | 数据大小 | kp_eproc.e_vm.vm_dsize 或 ki_dsize | ps -o dsiz |
ssize | 堆栈大小 | kp_eproc.e_vm.vm_ssize 或 ki_ssize | ps -o ssiz |
请参见下表中Linux上“memtype”参数支持的值。
支持的值 | 描述 | 来源于/proc/<pid>/status文件中的字段 |
---|---|---|
vsize 脚注 | 虚拟memory大小 | VmSize |
pmem | 实际内存使用百分比 | (VmRSS/总内存) * 100 |
rss | 常驻内存集大小 | VmRSS |
data | 数据段大小 | VmData |
exe | 代码段大小 | VmExe |
hwm | 峰值常驻内存集大小 | VmHWM |
lck | 锁定内存大小 | VmLck |
lib | 共享库大小 | VmLib |
peak | 峰值虚拟memory大小 | VmPeak |
pin | 固定页面大小 | VmPin |
pte | 页表项大小 | VmPTE |
size | 进程代码 + 数据 + 堆栈段大小 | VmExe + VmData + VmStk |
stk | 堆栈段大小 | VmStk |
swap | 使用的交换空间大小 | VmSwap |
Linux注意事项:
hwm
、pin
、peak
、pte
和swap
这些值。proc.mem[...,...,...,...,data]
对Zabbix agent主动检查进程进行自监控时,显示的值比agent的/proc/<pid>/status文件中VmData
行报告的值大4 KB。在自测量期间,agent的数据段增加了4 KB,随后又恢复到先前大小。请参见下表中 Solaris 系统上 'memtype' 参数支持的值。
支持的值 | 描述 | psinfo 结构中的来源 | 尝试兼容的命令 |
---|---|---|---|
vsize 脚注 | 进程映像大小 | pr_size | ps -o vsz |
pmem | 实际内存使用百分比 | pr_pctmem | ps -o pmem |
rss | 常驻集大小 该值可能被低估 - 详见 "man ps" 中的 rss 描述。 |
pr_rssize | ps -o rss |
1 默认值。