[comment]: # translation:outdated

[comment]: # ({new-7534a4a0})
# 9 Заметки о параметре типпамяти в элементах данных proc.mem

[comment]: # ({/new-7534a4a0})

[comment]: # ({new-2840c113})
#### Обзор

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

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

[comment]: # ({/new-2840c113})

[comment]: # ({new-04a03696})
#### AIX

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

|Поддерживаемое значение|Описание|Источник в структуре 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|<|

[comment]: # ({/new-04a03696})

[comment]: # ({new-c991a23d})

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.

[comment]: # ({/new-c991a23d})

[comment]: # ({new-a5bfcdb3})
2. 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.

3. 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>]
```

[comment]: # ({/new-a5bfcdb3})

[comment]: # ({new-56509a02})

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. 

[comment]: # ({/new-56509a02})

[comment]: # ({new-8a700330})
#### 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|

[comment]: # ({/new-8a700330})

[comment]: # ({new-f43d1dfd})
#### Linux

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

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

[comment]: # ({/new-f43d1dfd})

[comment]: # ({new-96fd9f28})
#### Solaris

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

|Поддерживаемое значение|Описание|Источник в структуре psinfo|Пытается быть совместимым с|
|---------------------------------------------|----------------|---------------------------------------------|---------------------------------------------------|
|vsize (( - значение по умолчанию))|Размер образа процесса|pr\_size|ps -o vsz|
|pmem|Процент физической памяти|pr\_pctmem|ps -o pmem|
|rss|Резидентный размер набора<br>Он может быть недооценен - см. описание rss в "man ps".|pr\_rssize|ps -o rss|

[comment]: # ({/new-96fd9f28})

[comment]: # ({new-e0ce8129})
##### Footnotes

^**1**^ Default value.

[comment]: # ({/new-e0ce8129})
