memtype 参数支持 Linux、AIX、FreeBSD 和 Solaris 平台。
所有平台均支持三种通用的 'memtype' 值:pmem
、rss
和 vsize
。此外,部分平台还支持特定于平台的 'memtype' 值。
AIX系统中'memtype'参数支持的值如下表所示。
支持的值 | 描述 | 在procentry64结构中的来源 | 尝试兼容的对象 |
---|---|---|---|
vsize 脚注 | 虚拟内存大小 | 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 | 虚拟内存大小 | 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 脚注 | 虚拟内存大小 | VmSize |
pmem | 实际内存百分比 | (VmRSS/total_memory) * 100 |
rss | 驻留集大小 | VmRSS |
data | 数据段大小 | VmData |
exe | 代码段大小 | VmExe |
hwm | 峰值驻留集大小 | VmHWM |
lck | 锁定内存大小 | VmLck |
lib | 共享库大小 | VmLib |
peak | 峰值虚拟内存大小 | VmPeak |
pin | 固定页大小 | VmPin |
pte | 页表项大小 | VmPTE |
size | 进程代码+数据+堆栈段总大小 | VmExe + VmData + VmStk |
stk | 堆栈段大小 | VmStk |
swap | 使用的交换空间大小 | VmSwap |
Linux系统注意事项:
1。较旧的Linux内核不支持所有'memtype'值。例如,Linux 2.4内核不支持hwm
、pin
、peak
、pte
和swap
等值。
2。我们注意到,使用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 默认值。