Параметр тип памяти поддерживается на платформах 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,2023
proc.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 Значение по умолчанию.