memtype参数在Linux、AIX、FreeBSD和Solaris平台上受支持。
所有平台均支持三种常见的'memtype'值:pmem
、rss
和vsize
。此外,某些平台还支持特定于平台的'memtype'值。
查看AIX系统中'memtype'参数支持的值如下表所示.
支持的值 | 描述 | 在procentry64结构中的来源 | 尝试兼容的对象 |
---|---|---|---|
vsize 1 | 虚拟memory大小 | pi_size | |
pmem | 实际memory的百分比 | 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系统注意事项:
示例:
$ zabbix_agentd -t proc.mem[,,,NonExistingProcess,rss] proc.mem[,,,NonExistingProcess,rss] [u|2879488]
此示例表明仅指定命令行(正则表达式匹配)参数会导致Zabbix agent自身进程被计入统计——这通常不是您期望的结果。
不要使用"ps -ef"浏览进程 - 它仅显示非内核进程。使用"ps -Af"查看所有进程,这些进程将被Zabbix agent识别。
让我们通过'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 | 实际memory百分比 | 根据rss计算得出 | ps -o pmem |
rss | 驻留集大小 | kp_eproc.e_vm.vm_rssize 或 ki_rssize | ps -o rss |
size 1 | 进程大小(代码 + 数据 + 栈) | 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 中的来源 file |
---|---|---|
vsize 1 | 虚拟 memory 大小 | VmSize |
pmem | 实际内存使用百分比 memory | (VmRSS/总内存) * 100 |
rss | 驻留集大小 | VmRSS |
data | 数据段大小 | VmData |
exe | 代码段大小 | VmExe |
hwm | 峰值常驻内存集大小 | VmHWM |
lck | 锁定的memory大小 | VmLck |
lib | 共享库大小 | VmLib |
peak | 峰值虚拟 memory 大小 | VmPeak |
pin | 固定页面大小 | VmPin |
pte | 页表条目大小 | VmPTE |
大小 | 进程代码+数据+堆栈段的总大小 | VmExe + VmData + VmStk |
stk | 栈段大小 | VmStk |
swap | 已使用的交换空间大小 | VmSwap |
Linux注意事项:
hwm
、pin
、peak
, pte
和 swap
值。proc.mem[...,...,...,...,data]
检查进程显示一个值 比VmData
行在agent中报告的大4 kB /proc/<pid>/status file. 在自测量时 agent的数据段增加4 kB后恢复原状 previous size. 之前的尺寸.查看Solaris系统中'memtype'参数支持的值如下表所示。
支持的值 | 描述 | psinfo结构体中的来源 | 尝试兼容的命令 |
---|---|---|---|
vsize 1 | 进程映像大小 | pr_size | ps -o vsz |
pmem | 实际memory的百分比 | pr_pctmem | ps -o pmem |
rss | 驻留集大小 可能被低估 - 参见"man ps"中rss的描述。 |
pr_rssize | ps -o rss |
1 默认值。