Параметр тип памяти поддерживается на платформах Linux, AIX, FreeBSD и Solaris.
Три общих значения параметра «тип памяти» поддерживаются на всех этих платформах: pmem, rss и vsize. Кроме того, для некоторых платформ поддерживаются специфичные для этих платформ значения «типа памяти».
Значения, поддерживаемые для параметра «тип памяти» на AIX, смотри в таблице.
| Поддерживаемое значение | Описание | Источник в структуре procentry64 | Пытается быть совместимым с | 
|---|---|---|---|
| vsize 1 | Размер виртуальной памяти | 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:
Пример:
$ zabbix_agentd -t proc.mem[,,,НесуществующийПроцесс,rss]
       proc.mem[,,,НесуществующийПроцесс,rss]           [u|2879488]Данный пример иллюстрирует, как указание только параметра командной строки (в виде регулярного выражения) приводит к тому, что Zabbix агент считает и себя тоже - вероятно, это не то, чего хотелось.
Не используйте «ps -ef» для просмотра процессов — он показывает только процессы, не относящиеся к ядру. Используйте «ps -Af», чтобы увидеть все процессы, которые будет видеть агент Zabbix.
Давайте рассмотрим пример «topasrec», как proc.mem[] агента Zabbix выбирает процессы.
$ ps -Af | grep topasrec
       root 1074798410Mar 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[] имеет аргументы:
proc.mem[<имя>,<пользователь>,<режим>,<cmdline>,<тип памяти>]Первый критерий — имя процесса (аргумент <имя>). В нашем примере агент Zabbix увидит его как «topasrec». Для соответствия вам нужно либо указать «topasrec», либо оставить его пустым. Второй критерий — имя пользователя (аргумент <пользователь>). Для соответствия вам нужно либо указать «root», либо оставить его пустым. Третий критерий, используемый при выборе процесса, — это аргумент <cmdline>. Агент Zabbix увидит его значение как «/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». Для сопоставления вам нужно либо указать регулярное выражение, соответствующее этой строке, либо оставить его пустым.
Аргументы <режим> и <тип памяти> применяются после использования трёх критериев, упомянутых выше.
Значения, поддерживаемые для параметра «тип памяти» на FreeBSD, смотрите в таблице.
| Поддерживаемое значение | Описание | Источник в структуре 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 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, смотрите в таблице.
| Поддерживаемое значение | Описание | Источник в файле /proc/<pid>/status | 
|---|---|---|
| vsize 1 | Размер виртуальной памяти | 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:
hwm, pin, peak, pte и swap.proc.mem[...,...,...,...,data] отображает значение, которое на 4 КБ больше, чем отдаёт строка VmData в файле агента /proc/<pid>/status. Во время измерения себя сегмент данных агента увеличивается на 4 КБ и затем возвращается к предыдущему размеру.Значения, поддерживаемые для параметра «тип памяти» на Solaris, смотрите в таблице.
| Поддерживаемое значение | Описание | Источник в структуре psinfo | Пытается быть совместимым с | 
|---|---|---|---|
| vsize 1 | Размер образа процесса | pr_size | ps -o vsz | 
| pmem | Процент физической памяти | pr_pctmem | ps -o pmem | 
| rss | Размер резидентного набора Он может быть недооценён - см. описание rss в «man ps». | pr_rssize | ps -o rss | 
1 Значение по умолчанию.