Это перевод страницы документации с английского языка. Помогите нам сделать его лучше.

9 Заметки о параметре типа памяти в элементах данных proc.mem

Обзор

Параметр тип памяти поддерживается на платформах Linux, AIX, FreeBSD и Solaris.

Три общих значения 'типа памяти' поддерживаются на всех этих платформах: pmem, rss и vsize. В дополнение, для некоторых платформ поддерживаются специфичные для этих платформ значения 'типа памяти'.

AIX

Смотри значения поддерживаемые параметром 'типа памяти' на 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

Notes for AIX:

  1. When choosing parameters for proc.mem[] item key on AIX, try to specify narrow process selection criteria. Otherwise there is a risk of getting unwanted processes counted into proc.mem[] result.

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.

  1. 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.

  2. 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,2023

proc.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

Смотрите значения поддерживаемые параметром 'типа памяти' на 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 (( - значение по умолчанию)) Размер процесса (код + данные + стэк) 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

Смотрите значения поддерживаемые параметром 'типа памяти' на 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:

  1. Не все значения 'типа памяти' поддерживаются старыми версиями ядра Linux. Например, ядра Linux 2.4 не поддерживают значения hwm, pin, peak, pte и swap.
  2. Мы заметили, что процесс само-диагностики активных проверок Zabbix агента с proc.mem[...,...,...,...,data] отображает значение, которое на 4 КБ больше, чем отдает строка VmData в файле агента /proc/<pid>/status. Во время самостоятельного измерения сегмент данных агента увеличивается на 4 КБ и затем возвращается к предыдущему значению.

Solaris

Смотрите значения поддерживаемые параметром 'типа памяти' на Solaris в таблице

Поддерживаемое значение Описание Источник в структуре psinfo Пытается быть совместимым с
vsize (( - значение по умолчанию)) Размер образа процесса pr_size ps -o vsz
pmem Процент физической памяти pr_pctmem ps -o pmem
rss Резидентный размер набора
Он может быть недооценен - см. описание rss в "man ps".
pr_rssize ps -o rss
Сноски

1 Значение по умолчанию.