[comment]: # ({4bf3e4ff-098d0431})
# 7 proc.memアイテムのmemtypeパラメーターに関する注意

[comment]: # ({/4bf3e4ff-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]: # ({b262d0c5-cc0df248})
AIX に関する注意事項:

1. AIX で proc.mem[] アイテムキーのパラメータを選択する際は、プロセス選択基準を絞り込むようにしてください。そうしないと、不要なプロセスが proc.mem[] の結果にカウントされてしまうリスクがあります。

例:
```
$ zabbix_agentd -t proc.mem[,,,NonExistingProcess,rss]
proc.mem[,,,NonExistingProcess,rss] [u|2879488]
```

この例は、コマンドライン（正規表現で一致）パラメータのみを指定すると、Zabbix エージェントが自分自身も監視対象とすることを示しています。これはおそらく望んだ結果ではありません。

[comment]: # ({/b262d0c5-cc0df248})

[comment]: # ({87cd17df-14c4cc2b})
2. プロセスを参照するために"ps -ef"を使用しないでください。これはカーネルプロセス以外のプロセスのみを表示します。Zabbixエージェントが認識するすべてのプロセスを表示するには、"ps -Af"を使用してください。

3. Zabbixエージェント proc.mem[] がプロセスを選択する方法を'topasrec'の例で確認してみましょう。

```
$ 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[] には引数があります:

```
proc.mem[<name>,<user>,<mode>,<cmdline>,<memtype>]
```

[comment]: # ({/87cd17df-14c4cc2b})

[comment]: # ({3fe2ad6d-0be32659})

1つ目の条件はプロセス名（引数 <name>）です。この例では、Zabbixエージェントはこれを'topasrec'として認識します。一致させるには、'topasrec'を指定するか、空のままにする必要があります。
2つ目の条件はユーザー名（引数 <user>）です。一致させるには、'root'を指定するか、空のままにする必要があります。
プロセス選択に使用される3つ目の条件は引数 <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'として認識します。一致させるには、この文字列に一致する正規表現を指定するか、空のままにする必要があります。

引数 <mode> と <memtype> は、上記の 3 つの基準を使用した後に適用されます。

[comment]: # ({/3fe2ad6d-0be32659})

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