[comment]: # translation:outdated

[comment]: # ({new-098d0431})
# 9 Notes on memtype parameter in proc.mem items

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

[comment]: # ({2840c113-2840c113})
#### 概要

**memtype**パラメーターは、Linux,AIX,FreeBSD,およびSolarisでサポートされています。

'memtype'の3つの一般的な値である`pmem`、`rss`、`vsize`は、これらすべてのプラットフォームでサポートされています。 さらに一部のプラットフォームでは固有の'memtype'値がサポートされています。

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

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

以下の表がAIXの'memtype'パラメーターでサポートされている値です。

|サポート値|説明|procentry64構造体のソース|互換|
|--|------|--|--|
|vsize ^[1](proc_mem_notes#footnotes)^|仮想メモリサイズ|pi\_size| |
|pmem|実メモリのパーセンテージ|pi\_prm|ps -o pmem|
|rss|物理メモリ消費量|pi\_trss + pi\_drss|ps -o rssize|
|size|プロセスのサイズ (コード + データ)|pi\_dvm|"ps gvw" SIZE column|
|dsize|データサイズ|pi\_dsize|<|
|tsize|テキスト (コード) サイズ|pi\_tsize|"ps gvw" TSIZ column|
|sdsize|シェアードライブラリのデータサイズ|pi\_sdsize|<|
|drss|データの物理メモリ消費量|pi\_drss| |
|trss|テキストの物理メモリ消費量|pi\_trss| |

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

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

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-d1d61498})

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

[comment]: # ({new-9ec5e875})

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-9ec5e875})

[comment]: # ({c2004450-8a700330})
#### FreeBSD

以下の表がFreeBSDの'memtype'パラメーターでサポートされている値です。

|サポート値|説明|kinfo\_proc構造体のソース|互換|
|--|------|--|--|
|vsize|仮想メモリサイズ|kp\_eproc.e\_vm.vm\_map.size or ki\_size|ps -o vsz|
|pmem|実メモリのパーセンテージ|calculated from rss|ps -o pmem|
|rss|物理メモリ消費量|kp\_eproc.e\_vm.vm\_rssize or ki\_rssize|ps -o rss|
|size ^[1](proc_mem_notes#footnotes)^|プロセスのサイズ(コード + データ + スタック)|tsize + dsize + ssize| |
|tsize|テキスト (コード)サイズ|kp\_eproc.e\_vm.vm\_tsize or ki\_tsize|ps -o tsiz|
|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|

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

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

以下の表がLinuxの'memtype'パラメーターでサポートされている値です。

|サポート値|説明|/proc/<pid>/statusファイルのソース|
|--|------|--|
|vsize ^[1](proc_mem_notes#footnotes)^|仮想メモリサイズ|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カーネルではサポートされていない`memtype`値があります。たとえばLinux 2.4カーネルは、 `hwm`、` pin`、 `peak`、` pte`、および`swap`の値をサポートしていません。
2.  `proc.mem[...,...,...,...,data]`を使用したZabbixエージェントのアクティブチェックプロセス自己監視は、エージェントの/proc/<pid>/statusファイルの`VmData`行で報告される値よりも4kB大きい値が示されていることがわかりました。自己測定時にエージェントのデータセグメントは4 kB増加し、その後前のサイズに戻ります。

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

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

以下の表がSolarisの'memtype'パラメーターでサポートされている値です。

|サポート値|説明|psinfo構造のソース|互換|
|--|------|--|--|
|vsize ^[1](proc_mem_notes#footnotes)^|プロセスイメージのサイズ|pr\_size|ps -o vsz|
|pmem|実メモリのパーセンテージ|pr\_pctmem|ps -o pmem|
|rss|物理メモリ消費量<br>過小評価されている可能性があります。"man ps"のrssの説明を参照してください|pr\_rssize|ps -o rss|

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

[comment]: # ({e0ce8129-e0ce8129})
##### 脚注

^**1**^ デフォルト値

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