rcapd によってキャッピングされた l ノードまたはプロジェクトについてのレポートを発行するには、rcapstat コマンドを使用してください。ユーザーは、サンプリングの間隔とレポートの頻度を設定できます。
サンプリングの間隔を秒単位で指定します。デフォルトの間隔は 5 秒です。
統計値の報告が繰り返される回数を指定します。デフォルトでは、rcapstat は終了シグナルを受け取るかあるいは rcapd プロセスが終了するまで統計値を報告します。
rcapstat によって発行される最初のレポート内のページング統計値には、デーモン起動後のアクティビティが示されます。その後のレポートには、最後のレポートが発行されて以来のアクティビティが示されます。
次に、rcapstat レポートの列見出しの内容を示します。
プロセスコレクションの l ノード ID、またはプロジェクトにアタッチされているプロセスのプロジェクト ID。
project または lnode。
コレクション内のプロセスの数。
キロバイト (K)、メガバイト (M)、またはギガバイト (G) で示したプロセスコレクションの全仮想メモリーサイズ。これには、マッピングされたすべてのファイルとデバイスが含まれます。
キロバイト (K)、メガバイト (M)、またはギガバイト (G) で示したプロセスコレクションの RSS (Resident Set Size) の合計。共有されているオブジェクトの分は含まれません。
プロジェクトまたは l ノードに設定されている RSS キャップ。メモリーキャップの指定方法については、rcapd(1MSRM) のマニュアルページを参照してください。
前回の rcapstat サンプル以降に rcapd がページアウトを試みたメモリーの合計量。
前回の rcapstat サンプル以降に発生した各サンプルサイクルで rcapd がページアウトを試みたメモリーの平均量。rcapd がコレクション RSS をサンプリングする頻度は、rcapadm(1MSRM) を使用して設定できます。
前回の rcapstat サンプル以降に rcapd が正常にページアウトしたメモリーの合計量。rcapd は、使用頻度がもっとも小さいページをページアウトします。
前回の rcapstat サンプル以降に発生した各サンプルサイクルで rcapd が正常にページアウトしたメモリーのおおよその平均量。rcapd がプロセス RSS サイズをサンプリングする頻度は、rcapadm を使用して設定できます。
この節の例は、物理メモリーキャップが定義されたプロセスコレクションの資源利用状況を監視するために rcapstat を使用する方法を示しています。
2 人のユーザーに関連付けられた 2 つの l ノードに対してキャップが定義されています。user1 には 50MB のキャップ、user2 には 10MB のキャップが指定されています。
次のコマンドは、5 秒のサンプリング間隔でレポートを生成します。レポートは、5 回発行されます (各サンプル後に 1 回ずつ)。
usermachine% rcapstat 5 5 id lnode nproc vm rss cap at avgat pg avgpg 112270 user1 24 123M 35M 50M 50M 0K 3312K 0K 78194 user2 1 2368K 1856K 10M 0K 0K 0K 0K id lnode nproc vm rss cap at avgat pg avgpg 112270 user1 24 123M 35M 50M 0K 0K 0K 0K 78194 user2 1 2368K 1856K 10M 0K 0K 0K 0K id lnode nproc vm rss cap at avgat pg avgpg 112270 user1 24 123M 35M 50M 0K 0K 0K 0K 78194 user2 1 2368K 1928K 10M 0K 0K 0K 0K id lnode nproc vm rss cap at avgat pg avgpg 112270 user1 24 123M 35M 50M 0K 0K 0K 0K 78194 user2 1 2368K 1928K 10M 0K 0K 0K 0K id lnode nproc vm rss cap at avgat pg avgpg 112270 user1 24 123M 35M 50M 0K 0K 0K 0K 78194 user2 1 2368K 1928K 10M 0K 0K 0K 0K |
出力の最初の 3 行は最初のレポートに相当し、2 つの l ノードのキャップ情報と l ノード情報、および rcapd 開始後のページング統計値を示しています。at 列と pg 列では、user1 についてはゼロを超える数値、user2 についてはゼロが示されています。これは、このデーモンの履歴のある時点において user1 がそのキャップを超えたが user2 はキャップを超えなかったことを意味します。
後続のレポートには前回の構成間隔以降のページング統計値が示されていますが、重要なアクティビティは示されていません。
limadm(1MSRM) コマンドを使用し、l ノードのメモリーキャップを抑えることができます。これにより、キャップがより限定的となり、rcapd は次の構成間隔のあとで新しいキャップを適用します (rcapadm(1MSRM) のマニュアルページを参照)。また、rcapd によって新しいキャップをただちに適用するシグナルも送信できます。
admin# limadm set rss.limit=30M user1 admin# pkill -HUP rcapd |
次のコマンドは、5 秒のサンプリング間隔でレポートを生成します。レポートは、5 回発行されます (各サンプル後に 1 回ずつ)。
admin# rcapstat 5 5 id lnode nproc vm rss cap at avgat pg avgpg 112270 user1 24 123M 35M 30M 50M 0K 3312K 0K 78194 user2 1 2368K 1856K 10M 0K 0K 0K 0K id lnode nproc vm rss cap at avgat pg avgpg 112270 user1 24 123M 36M 30M 52M 52M 632K 632K 78194 user2 1 2368K 2096K 10M 0K 0K 0K 0K id lnode nproc vm rss cap at avgat pg avgpg 112270 user1 24 123M 33M 30M 57M 52M 816K 632K 78194 user2 1 2368K 1968K 10M 0K 0K 0K 0K id lnode nproc vm rss cap at avgat pg avgpg 112270 user1 24 123M 27M 30M 4792K 4792K 40K 40K 78194 user2 1 2368K 1144K 10M 0K 0K 0K 0K id lnode nproc vm rss cap at avgat pg avgpg 112270 user1 24 123M 27M 30M 0K 0K 0K 0K 78194 user2 1 2368K 1144K 10M 0K 0K 0K 0K |
キャップが 50MB から 30MB に抑えられた時、rcapd はこのキャップ値を超える 6MB の常駐メモリーのページアウトを試みるという方法で対応しています。目標値に達しました (ほんのわずか超えた状態)。
次のコマンドは、5 秒のサンプリング間隔でレポートを生成します。レポートは、5 回発行されます (各サンプル後に 1 回ずつ)。
user1machine% rcapstat 5 5 |
id project nproc vm rss cap at avgat pg avgpg 376565 user1 57 209M 46M 10M 440M 220M 5528K 2764K 376565 user1 57 209M 44M 10M 394M 131M 4912K 1637K 376565 user1 56 207M 43M 10M 440M 147M 6048K 2016K 376565 user1 56 207M 42M 10M 522M 174M 4368K 1456K 376565 user1 56 207M 44M 10M 482M 161M 3376K 1125K |
この例では、プロジェクト user1 にはその物理メモリーキャップを超える RSS が割り当てられています。pg 列に表示されているゼロ以外の値は、プロジェクトのプロセスによる物理メモリーの利用を減らすことによってキャップの条件を維持するように rcapd が一貫してメモリーをページアウトしていることを示します。しかし、これに対応するだけの減少が起きることなく rss 値が変動していることからわかるように、rcapd は成功していません。これは、アプリケーションの常駐メモリーが活発に使用され、rcapd がワーキングセットに作用していることを意味します。この状況では、ワーキングセットサイズが縮小されるか、キャップが拡大されるか、あるいはアプリケーションがそのメモリーアクセスパターンを変更するまで、システムおよび関連する入出力はページ障害を起こしやすい状態となります。
次の例は先の例の続きであり、同じプロジェクトを使用しています。
example% rcapstat 5 5 id project nproc vm rss cap at avgat pg avgpg 376565 user1 56 207M 44M 10M 381M 191M 15M 7924K 376565 user1 56 207M 46M 10M 479M 160M 2696K 898K 376565 user1 56 207M 46M 10M 424M 141M 7280K 2426K 376565 user1 56 207M 43M 10M 401M 201M 4808K 2404K 376565 user1 56 207M 43M 10M 456M 152M 4800K 1600K 376565 user1 56 207M 44M 10M 486M 162M 4064K 1354K 376565 user1 56 207M 52M 100M 191M 95M 1944K 972K 376565 user1 56 207M 55M 100M 0K 0K 0K 0K 376565 user1 56 207M 56M 100M 0K 0K 0K 0K 376565 user1 56 207M 56M 100M 0K 0K 0K 0K 376565 user1 56 207M 56M 100M 0K 0K 0K 0K 376565 user1 56 207M 56M 100M 0K 0K 0K 0K |
プロジェクトのキャップの引き上げまたは最小のキャップ適用メモリー圧縮値の変更を通してキャップ適用を抑制することにより (rcapadm(1MSRM) のマニュアルページを参照)、常駐セットをワーキングセットにすることができます。この例でわかるように、rss 列はプロジェクトのワーキングセットサイズを示して安定することがあります。これは、絶え間なくページ障害を引き起こすことなくプロジェクトのプロセスが処理される最小のキャップ値です。
rcapstat に -g オプションを使用すると、以下の値が出力されます。
rcapadm(1MSRM) で設定されている大域メモリー利用キャップ
システムに搭載されている全物理メモリーの何パーセントを現在使用しているか