AIXの仮想メモリについて学ぶ
AIXの仮想メモリマネージャーの前提知識
AIXの仮想メモリーマネージャー(VMM)ではメモリを以下のように区分けします。
- 計算メモリ(Computational memory)
- 非計算メモリ(Non-computational memory)
計算メモリは、アプリケーションメモリ(プロセスのテキスト、データ、スタックセグメント)とカーネルメモリ。
非計算メモリは、ファイルシステムキャッシュです。JFS、JFS2、NFS、GPFS等があります。
- JFS以外のすべての非計算メモリを、クライアントメモリと呼ぶ
- ファイルシステムキャッシュは、numpermで確認できる。
- クライアントメモリのサイズは、numclientで確認できる。
以下の図は、計算メモリ(システムとアプリケーションで使用しているメモリ)と非計算メモリ(ファイルシステムキャッシュ)の違いを表しています。青色の箇所が計算メモリ、赤色と緑色の箇所がファイルシステムキャッシュです。
AIXにおける重要なメモリパラメータ
maxfreeやminfreeについても重要ですが、それらについては別途説明します。
項目名 | 説明 |
---|---|
numperm% | ファイルシステムキャッシュとして使用されている量を%で表示。 |
minperm% | ファイルシステムキャッシュとして確保されているメモリ量の最小値を%で指定。 |
maxperm% | ファイルシステムキャッシュとして確保されているメモリ量の最大値を%で指定。 |
strict_maxperm | 有効の場合(1に設定)、maxperm%の設定をハード制限として設定できる。 無効の場合(0に設定)、ファイルシステムキャッシュはmaxperm%の設定を超えてメモリを使用することになる。 |
numclient% | クライアントシステムキャッシュ(クライアントメモリ)として使用されている量を%で表示。 |
maxclient% | クライアントシステムキャッシュとして使用されているメモリ量の最小値を%で指定。 |
strict_maxclient | 有効の場合(1に設定)、maxclient%の設定をハード制限として設定できる。AIX v6.1以降ではこちらがデフォルト。 無効の場合(0に設定)、クライアントシステムキャッシュはmaxclient %の設定を超えてメモリを使用することになる。 |
lru_file_repage | 有効の場合(1に設定)、計算ページ、ファイルシステムキャッシュ問わず開放する。AIX v5.3まではこちらがデフォルト。 無効の場合(0に設定)、ファイルシステムキャッシュを優先的に開放する。AIX v6.1以降ではこちらがデフォルト。 |
lruable pages | lruable ページ数。仮想メモリへページアウト可能なページ数。1ページは4KB。 物理メモリ(vmstatではmemory pagesとして表示される)から以下のページを除いたページ数。
|
以下の図はminpermが3%、maxpermが90%の場合のmaxperm、minperm、numpermの関係。緑の「Non computational File System cache」がファイルシステムキャッシュの量を表している。
AIXのメモリパラメータの補足説明
- 設定値は常に maxclient% <= maxperm% としなければならない。
- maxperm の値を減らすと、システムやアプリケーション(アプリケーション・メモリ)で使用できるメモリの量が増える。(その場合、maxclientの値も同時に減らす)
- アプリケーション・メモリがページアウトされると、ページングによりパフォーマンスが低下する場合がある。maxpermの値を大きくしすぎないように注意する。
- nmonで表示されるminpermは搭載しているメモリの「lruable pages」に「minperm%」を掛けた値が表示される。
- 同じく、maxpermは搭載しているメモリの「lruable pages」に「maxperm%」を掛けた値が表示される。
そのため、nmonの出力結果を見た場合、minperm、maxpermの値は設定したminperm、maxpermの値よりも若干小さく表示される。
「lruable pages」は、vmstatコマンドの出力結果に表示されます。
vmstat -v
1003520 memory pages
960028 lruable pages…
以下のドキュメントを参考にしています。(図もお借りしています。)