memtypeパラメーターは、Linux,AIX,FreeBSD,およびSolarisでサポートされています。
'memtype'の3つの一般的な値であるpmem
、rss
、vsize
は、これらすべてのプラットフォームでサポートされています。 さらに一部のプラットフォームでは固有の'memtype'値がサポートされています。
以下の表がAIXの'memtype'パラメーターでサポートされている値です。
サポート値 | 説明 | 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 column |
dsize | データサイズ | pi_dsize | |
tsize | テキスト (コード) サイズ | pi_tsize | "ps gvw" TSIZ column |
sdsize | シェアードライブラリのデータサイズ | pi_sdsize | |
drss | データの物理メモリ消費量 | pi_drss | |
trss | テキストの物理メモリ消費量 | pi_trss |
AIX に関する注意事項:
例:
$ zabbix_agentd -t proc.mem[,,,NonExistingProcess,rss]
proc.mem[,,,NonExistingProcess,rss] [u|2879488]
この例では、コマンドラインで(正規表現で一致させた)パラメータのみを指定すると、Zabbix エージェントが自分のプロセスを検知してしまう結果を表示しています。これはおそらく望ましい結果ではありません。
プロセスを参照するために "ps -ef" を使用しないでください。これはカーネルプロセス以外のプロセスのみを表示します。Zabbixエージェントが認識するすべてのプロセスを表示するには、"ps -Af"を使用してください。
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>]
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 つの条件を使用した後に適用されます。
以下の表が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 | プロセスのサイズ(コード + データ + スタック) | 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 |
以下の表がLinuxの'memtype'パラメーターでサポートされている値です。
サポート値 | 説明 | /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に関する注意:
memtype
値があります。たとえばLinux 2.4カーネルは、 hwm
、pin
、 peak
、pte
、およびswap
の値をサポートしていません。proc.mem[...,...,...,...,data]
を使用したZabbixエージェントのアクティブチェックプロセス自己監視は、エージェントの/proc/<pid>/statusファイルのVmData
行で報告される値よりも4kB大きい値が示されていることがわかりました。自己測定時にエージェントのデータセグメントは4 kB増加し、その後前のサイズに戻ります。以下の表がSolarisの'memtype'パラメーターでサポートされている値です。
サポート値 | 説明 | psinfo構造のソース | 互換 |
---|---|---|---|
vsize 1 | プロセスイメージのサイズ | pr_size | ps -o vsz |
pmem | 実メモリのパーセンテージ | pr_pctmem | ps -o pmem |
rss | 物理メモリ消費量 過小評価されている可能性があります。"man ps"のrssの説明を参照してください |
pr_rssize | ps -o rss |
1 デフォルト値