Linux, AIX, FreeBSD 和 Solaris 都支持memtype参数。
'memtype' 参数的三个常用值 pmem, rss 和 vsize在所有系统中都适用。另外, 在一些系统中只支持该系统下的 'memtype' 值。
请参见表中AIX上的“memtype”参数所支持的值.
| 支持的参数值 描述 | Source | n procentry64 structure Tries t | be compatible with | 
|---|---|---|---|
| vsize (( - default value)) | 虚拟内存大小 pi_s | ze | |
| pmem | 实际内存的百分比 pi_prm | ps -o p | em | 
| rss | 驻留集大小 pi_ | rss + pi_drss ps - | rssize | 
| size | 进程大小(代码+数据) pi_dvm | "ps gvw | SIZE column | 
| dsize | 数据大小 pi | dsize | |
| tsize | 文本(代码)的大小 pi_ts | ze "ps gv | " TSIZ column | 
| sdsize | 来自共享库的数据大小 pi_sdsiz | ||
| drss | 数据驻留集大小 pi_dr | s | |
| trss | 文本驻留集大小 pi_tr | s | |
Notes for AIX:
Example:
\$ zabbix_agentd -t proc.mem[,,,NonExistingProcess,rss]
       proc.mem[,,,NonExistingProcess,rss]           [u|2879488]This example shows how specifying only command line (regular expression to match) parameter results in Zabbix agent self-accounting - probably not what you want.
Do not use "ps -ef" to browse processes - it shows only non-kernel processes. Use "ps -Af" to see all processes which will be seen by Zabbix agent.
Let's go through example of 'topasrec' how Zabbix agent proc.mem[] selects processes.
\$ 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,2023proc.mem[] has arguments:
proc.mem[<name>,<user>,<mode>,<cmdline>,<memtype>]The 1st criterion is a process name (argument <name>). In our example Zabbix agent will see it as 'topasrec'. In order to match, you need to either specify 'topasrec' or to leave it empty. The 2nd criterion is a user name (argument <user>). To match, you need to either specify 'root' or to leave it empty. The 3rd criterion used in process selection is an argument <cmdline>. Zabbix agent will see its value as '/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'. To match, you need to either specify a regular expression which matches this string or to leave it empty.
Arguments <mode> and <memtype> are applied after using the three criteria mentioned above.
请参见表中FreeBSD上的“memtype”参数支持的值。
| Supported value | Description | Source in kinfo_proc structure | Tries to be compatible with | 
|---|---|---|---|
| vsize | 虚拟内存大小 kp_e | roc.e_vm.vm_map.size or ki_size ps -o | vsz | 
| pmem | 实际内存的百分比 calcula | ed from rss ps -o p | em | 
| rss | 驻留集大小 kp_ | proc.e_vm.vm_rssize or ki_rssize ps - | rss | 
| size (( - default value)) | 进程(代码+数据+堆栈)大小 tsize + d | ize + ssize | |
| tsize | 文本(代码)的大小 kp_ep | oc.e_vm.vm_tsize or ki_tsize ps -o | siz | 
| dsize | 数据大小 kp | eproc.e_vm.vm_dsize or ki_dsize ps | o dsiz | 
| ssize | 堆栈大小 kp | eproc.e_vm.vm_ssize or ki_ssize ps | o ssiz | 
请参见表中Linux上的“memtype”参数支持的值。
| Supported value | Description | Source in /proc/<pid>/status file | 
|---|---|---|
| vsize (( - default value)) | 虚拟内存大小 VmSiz | |
| pmem | 实际内存的百分比 (VmRSS/ | otal_memory) * 100 | 
| rss | 驻留集大小 VmRS | |
| data | 数据段的大小 VmDat | |
| exe | 代码段的大小 VmExe | |
| hwm | 驻留集峰值大小 VmHWM | |
| lck | 锁定内存大小 VmLck | |
| lib | 共享库的大小 VmLib | |
| peak | 虚拟内存峰值大小 VmPeak | |
| pin | 固定的页面大小 VmPin | |
| pte | 页表条目的大小 VmPTE | |
| size | 进程码+数据+栈段大小 VmExe + | mData + VmStk | 
| stk | 堆栈段大小 VmSt | |
| swap | 使用的交换空间大小 VmSwap | |
Linux上注意事项:
hwm, pin, peak, pte 和 swap 等值。proc.mem[...,...,...,...,data] 显示的值比agent 的 /proc/<pid>/status 文件中 VmData行的值大大 4 kB。在agent自我监控管理时,agent的数据碎片增长率4 kB ,然后又返回到先前的值。请参见表中的Solaris上的“memtype”参数所支持的值。
| 支持的参数值 描述 | Source | n psinfo structure 兼容 | |
|---|---|---|---|
| vsize (( - default value)) | Size of process image | pr_size | ps -o vsz | 
| pmem | 实际内存的百分比 pr_pct | em ps -o p | em | 
| rss | 驻留集大小 pr_可能会被低估 - 参看 "man ps"中rss描述. | ssize ps - | rss | 
1 Default value.