Go to main content
Oracle® Solaris 11.3 でのリソースの管理

印刷ビューの終了

更新: 2016 年 11 月
 
 

rcapstat による報告の生成

リソース上限制御の統計を報告するには、rcapstat を使用します。rcapstat によるリソース使用効率のモニタリング コマンドを使って報告を生成する方法については、Monitoring Resource Utilization With rcapstatを参照してください。このセクションでは、報告の列見出しについても説明します。rcapstat(1) のマニュアルページにも、この情報が含まれています。

このセクションでは、さまざまな目的の報告を生成する方法を、例を使用しながら説明します。

上限とプロジェクトの情報の報告

この例では、2 人のユーザーに関連付けられた 2 つのプロジェクトに、上限が定義されています。user1 の上限は 50M バイト、user2 の上限は 10M バイトです。

次のコマンドは、5 つの報告を 5 秒間のサンプリング間隔で生成します。

user1machine% rcapstat 5 5
    id project  cappd  nproc     vm    rss   cap    at   avgat    pg  avgpg
112270   user1   Yes      24   123M    35M   50M   50M      0K 3312K     0K
 78194   user2   Yes       1  2368K    1856K 10M    0K      0K    0K     0K
    id project  cappd  nproc     vm    rss   cap    at   avgat    pg    avgpg
112270   user1    Yes     24   123M    35M   50M    0K      0K    0K       0K
 78194   user2    Yes      1  2368K  1856K   10M    0K      0K    0K       0K
    id project  cappd  nproc     vm    rss   cap    at    avgat   pg    avgpg
112270   user1    Yes     24   123M    35M   50M    0K      0K    0K       0K
 78194   user2    Yes      1  2368K  1928K   10M    0K      0K    0K       0K
    id project  cappd  nproc     vm    rss   cap    at    avgat   pg    avgpg
112270   user1    Yes     24   123M    35M   50M    0K      0K    0K       0K
 78194   user2    Yes      1  2368K  1928K   10M    0K      0K    0K       0K
    id project  cappd  nproc     vm    rss   cap    at    avgat   pg    avgpg
112270   user1    Yes     24   123M    35M   50M    0K      0K    0K       0K
 78194   user2    Yes      1  2368K  1928K   10M    0K    0K    0K         0K 

出力の最初の 3 行は 1 回目の報告です。ここには、2 つのプロジェクトに関する上限とプロジェクトの情報、および rcapd 起動以降のページング統計が記載されています。atpg の列において、user1 にはゼロより大きな値が入っており、user2 にはゼロが入っています。これは、1 回目の報告の期間中、user1 は上限を超えたが、user2 は超えなかったことを意味します。

2 回目以降の報告では、目立った活動はありません。

プロジェクトの RSS のモニタリング

この例では、プロジェクト user1 を使用しています。このプロジェクトには RSS 上限を超えた RSS が 1 つあります。

次のコマンドは、5 つの報告を 5 秒間のサンプリング間隔で生成します。

user1machine% rcapstat 5 5
    id project   cappd  nproc       vm       rss       cap    at     avgat     pg  avgpg
376565   user1   Yes       3     6249M     6144M     6144M  690M      220M  5528K  2764K
376565   user1   Yes       3     6249M     6144M     6144M    0M      131M  4912K  1637K
376565   user1   Yes       3     6249M     6171M     6144M   27M      147M  6048K  2016K
376565   user1   Yes       3     6249M     6146M     6144M 4872M      174M  4368K  1456K
376565   user1   Yes       3     6249M     6156M     6144M   12M      161M  3376K  1125K

プロジェクト user1 は 3 つのプロセスを持っており、それぞれがアクティブに物理メモリーを使用しています。pg 列の正の値が示しているとおり、rcapd は、このプロジェクトのプロセスの物理メモリーの使用率を上限に合わせて下げようと、メモリーをページアウトし続けています。しかし、rcapd は RSS を上限値未満に保つことに成功していません。これは、rss 値が相応の減少を示していないことでわかります。作業負荷はメモリーをページアウトするとすぐにまたメモリーを使用しており、その結果、RSS の値がまた上がってしまいます。これは、プロジェクトの常駐メモリーがすべてアクティブに使用されており、かつ、作業セットサイズ (WSS) が上限よりも大きいことを意味します。そのため、rcapd は、上限に合わせて作業セットの一部をページアウトせざるを得ません。この状況では、次のうちのいずれかが起きるまで、システムのページフォルト率および関連する入出力は高いままです。

  • WSS が小さくなる。

  • 上限を上げる。

  • アプリケーションのメモリーアクセスパターンが変わる。

この状況では、サンプリング間隔を短くすることで、RSS 値と上限値の差を小さくできる可能性があります。rcapd が作業負荷をサンプリングして上限を制限する頻度が上がるからです。


注 -  ページフォルトが発生するのは、新しいページを作成する必要があるとき、あるいは、システムがスワップデバイスからページをコピーする必要があるときです。

プロジェクトの作業セットサイズの決定

この例では、前の例と同じプロジェクトを使用します。

前の例では、プロジェクト user1 が自分に許可された上限よりも多くの物理メモリーを使用しているところを示しました。この例では、どれくらいのメモリーをプロジェクトの作業負荷が必要とするのかを示します。

user1machine% rcapstat 5 5
    id project  cappd  nproc    vm   rss   cap    at  avgat    pg  avgpg
376565   user1    Yes      3 6249M 6144M 6144M  690M    0K   689M     0K
376565   user1    Yes      3 6249M 6144M 6144M    0K    0K     0K     0K
376565   user1    Yes      3 6249M 6171M 6144M   27M    0K    27M     0K
376565   user1    Yes      3 6249M 6146M 6144M 4872K    0K  4816K     0K
376565   user1    Yes      3 6249M 6156M 6144M   12M    0K    12M     0K
376565   user1    Yes      3 6249M 6150M 6144M 5848K    0K  5816K     0K
376565   user1    Yes      3 6249M 6155M 6144M   11M    0K    11M     0K
376565   user1    Yes      3 6249M 6150M   10G   32K    0K    32K     0K
376565   user1    Yes      3 6249M 6214M   10G    0K    0K     0K     0K
376565   user1    Yes      3 6249M 6247M   10G    0K    0K     0K     0K
376565   user1    Yes      3 6249M 6247M   10G    0K    0K     0K     0K
376565   user1    Yes      3 6249M 6247M   10G    0K    0K     0K     0K
376565   user1    Yes      3 6249M 6247M   10G    0K    0K     0K     0K
376565   user1    Yes      3 6249M 6247M   10G    0K    0K     0K     0K
376565   user1    Yes      3 6249M 6247M   10G    0K    0K     0K     0K

サイクルの中ほどで、プロジェクト user1 の上限を 6G バイトから 10G バイトに上げました。値を上げることによって上限の制限が止まり、常駐セットサイズが上昇しました。常駐セットサイズを規制するのは、ほかのプロセスと、システムのメモリー容量だけになりました。rss 列が、プロジェクトの作業セットサイズ (この例では 6247M バイト) を反映して安定する場合があります。この値が、このプロジェクトのプロセスがページフォルトを頻繁に起こさずに動作できる、上限の最小値です。

user1 の上限が 6G バイトであるとき、サンプリング間隔である 5 秒ごとに、rcapd が作業負荷のメモリーの一部をページアウトするにつれて、RSS は減少して入出力は増加します。ページアウトの直後、これらのページを必要とする作業負荷は、(動作し続ける限り) メモリーをページインします。このサイクルは、例の中ほどで上限を10G バイトに上げるまで繰り返されます。その後、RSS は 6.1G バイトで安定します。作業負荷の RSS が上限より低くなったため、これ以後ページングは発生しません。また、ページングに関連する入出力は止まります。このため、観察時にプロジェクトが行なっていた作業の実行には、6.1G バイトが必要であったことがわかります。

vmstat(1M) および iostat(1M) のマニュアルページも参照してください。