[AIX]svmon -Gのおおまかな見方
注:
この文書での方法は1つの考え方でしかなく異論反論があると思いますので、そういった意見をお持ちの方はぜひとも別の文書で考え方を公開ください。
また、こちらの文書は初めてsvmon -Gを見る人向けのため、分かりやすさ優先で細かい部分は正確ではない可能性があります。
コマンド実行例:
# svmon -G -O timestamp=on,unit=auto,pgsz=on
Unit: auto Timestamp: 09:51:41
--------------------------------------------------------------------------------------
size inuse free pin virtual available mmode
memory 2.00G 1.99G 14.7M 1.34G 1.48G 169.68M Ded
pg space 512.00M 12.4M
work pers clnt other
pin 0.99G 0K 16.3M 339.88M
in use 1.48G 0K 520.61M
PageSize PoolSize inuse pgsp pin virtual
s 4 KB - 1.10G 12.4M 580.36M 607.96M
m 64 KB - 904.75M 0K 793.06M 904.75M
L 16 MB - 0K 0K 0K 0K
S 16 GB - 0K 0K 0K 0K
見るべき項目:
memory-virtual
-> 計算ページの仮想ページ数(実メモリ上のページ数+ページングスペース上のページ数-重複ページ数)であり、実質的な計算ページでのメモリ使用量
memory-available
-> (ページングスペースへのページアウトが始まる前に)破棄可能なファイルキャッシュ量であり、実質的な空きメモリ容量
in use-work
-> 実メモリ上の計算ページ数
見てもあまり意味が無い項目:
memory-inuse
-> ファイルキャッシュを含む実メモリ上のページ数
memory-free
-> ファイルキャッシュを含まない実メモリのフリーページ数
in use-clnt
-> 一般的にファイルキャッシュ数を示すが全てが破棄できるわけではない
pg space-inuse
-> ページングスペースの使用量、ただし、ページインしでもキャッシュとして保持され破棄されるわけではないので、見る意味はあまりない(※3)
参考:
Memory consumption on AIX Server using svmon command
https://www.ibm.com/support/pages/memory-consumption-aix-server-using-svmon-command
※1 ファイルキャッシュはavailableに含まれますが、minpermやminfreeも考慮するため、free+ファイルシステムキャッシュがavailableになるわけではありません。
※2 ファイルキャッシュについての補足:
仮想メモリー・マネージャーにおける永続メモリー・セグメントと作業メモリー・セグメント
https://www.ibm.com/docs/ja/aix/7.3.0?topic=vmm-persistent-working-memory-segments-in-virtual-memory-manager
永続ページ、永続セグメント、非計算ページなどと言った記載がファイルキャッシュを示します。
ファイルキャッシュにはテキストファイル、実行モジュールなどが含まれ、これらのデータはディスク上に実体を持つため、システム全体の実メモリが不足した場合でもディスク上のページとデータの同期を行うことでページングスペースへのページアウトを行う必要はありません。
一方で、計算ページ、計算セグメント、作業セグメントといった記載のメモリはプログラム内でmalloc()などによって確保されたメモリになり、ディスク上に実体を持たないメモリになるため、ページングスペースへの退避を行う必要があります。
※3 ページンスペースについての補足:
仮想メモリー・マネージャーにおける作動セグメントとページング・スペース
https://www.ibm.com/docs/ja/aix/7.3.0?topic=vmm-working-segments-paging-space-in-virtual-memory-manager
割り当てられたページング・スペースは、そのページのページアウトが必要となった場合にのみ使用されます。 ただし、ページング・スペースに割り当てられたページを別のページが使用することはできません。 そのスペースは、ある特定のページが仮想メモリー内に存在する限り、 そのページ用に予約されたままとなります。
とある通り、1度ページングスペースへページアウトされたメモリは、再度ページインした際にも次回のページアウトに備えてページングスペース上にキャッシュされ続けるため、仮想メモリ使用量としてページングスペースの使用量や空き容量を見るのは適切ではありません。
※4 用語について
ページアウト・ページイン -> 実メモリ上でのメモリページの削除・作成のことであり、必ずしもページングスペースへのI/Oが発生するわけではありません。そのため、各種文書ではページアウトとページングスペースへのページアウトは分けて記載されることが多いです。