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

印刷ビューの終了

更新: 2016 年 11 月
 
 

rcapadm コマンドを使用した rcapd の管理

rcapd を構成するには、rcapadm コマンドを使用します。rcapadm を使用すると、次のリソース上限制御アクションを実行できます。

  • リソース上限制御を有効または無効にします

  • 構成済みのリソース上限デーモンの現在のステータスを表示します

rcapadm は、次のパラメータを設定できます。

rss sample interval

プロセスコレクションごとに常駐セットサイズ (RSS) をサンプリングするために使用される間隔。rss sample interval (秒単位) ごとに、各コレクションの RSS が更新されます。この測定は、コレクションで上限を適用する rcapd によって使用されます。

rcapd mode

rcapd が上限を適用する必要があるか、スキャン結果を記録する必要があるかを指定します。rcapd は、次の操作モードをサポートしています。

pageout

デフォルトのモード。rcapd は RSS 上限を超えている各コレクションの rss sample 間隔のログメッセージを出力します。続いて rcapd はコレクションに上限を適用します。

log-only

rcapd は、rss sample 間隔ごとに各コレクションのログメッセージを出力します。それ以上のアクションは実行されません。

rcapadm を使用するには、root ユーザーであるか、必要な管理権利を持っている必要があります。

構成の変更は、SIGHUP を送信することによって、必要に応じて rcapd に組み込むことができます ( kill(1) のマニュアルページを参照してください)。

引数なしで使用された場合、rcapadm は、リソース上限デーモンの現在のステータスを表示します。

次のサブセクションでは、上限の適用と上限値について説明します。

ゾーン環境がインストールされているシステムでのリソース上限デーモンの使用

ゾーンを構成するときに capped-memory リソースを設定することにより、ゾーンの常駐セットサイズ (RSS) 使用量を制御できます。詳細は、Oracle Solaris ゾーン構成リソース の capped-memory リソースと物理メモリーの制御を参照してください。capped-memory リソースを使用するには、resource-cap パッケージが大域ゾーン内にインストールされている必要があります。大域ゾーンも含むゾーン内で rcapd を実行して、そのゾーン内のプロジェクトにメモリー上限を適用できます。

特定のゾーンで消費可能なメモリー量に、次のリブートまで一時的な上限を設定することができます。ゾーンに一時的なリソース上限を指定する方法を参照してください。

rcapd をゾーンで使用して、リソース上限が定義されたプロジェクト内で実行されるプロセスによる物理メモリーの消費を規制する場合は、それらのゾーン内でデーモンを構成する必要があります。

別のゾーン内にあるアプリケーションのメモリー上限を選択する場合、通常は、そのアプリケーションが別のゾーン内にあることを考慮する必要はありません。例外は、ゾーン別のサービスの場合です。ゾーン別のサービスは、メモリーを消費します。システムの物理メモリー量およびメモリー上限を決定する際には、このメモリー消費を考慮してください。

適用されない上限と rcapd 操作

プロセスコレクションが長時間上限を超えることがわかった場合、rcapd では、そのコレクションに対して上限の適用を停止するか再開するかを決定できます。rcapd が上限の適用を停止すると、原因を報告し、適切な上限の設定を提案する詳細なエラーメッセージが記録されます。

あとで rcapd によって、設定した上限に一致するようにコレクションの rss を削減できると判断された場合、rcapd は上限の適用を再開できます。

上限の適用を再開するように rcapd を実行するには、次の方法を使用できます。

  • コレクションに適切な上限を設定します。上限値の決定を参照してください。

  • プロセスのログを調べて、rcapd を再起動します。

上限値の決定

プロジェクトの上限の設定が低すぎると、通常の状態でも、作業負荷が効率的に機能するだけのメモリーを使用できない可能性があります。作業負荷がより多くのメモリーを要求するためページングが発生し、システムの性能に悪影響がでます。

プロジェクトの上限の設定が高すぎると、上限に達する前に、利用可能な物理メモリーを使い果たす可能性があります。この場合、物理メモリーは、rcapd ではなくカーネルによって効率的に管理されます。

プロジェクトの上限を決定するときには、次の要素を考慮します。

入出力システムへの影響

サンプリングした使用率がプロジェクトの上限を超えている場合、リソース上限デーモンはプロジェクトの作業負荷の物理メモリー使用率を減らそうとします。上限が制限されている間は、作業負荷がマッピングしているファイルには、スワップなどのデバイスが使用されます。上限を頻繁に超える作業負荷の場合、その性能は、スワップデバイスの性能に大きく左右されます。このような作業負荷を実行することは、作業負荷の上限と同じサイズの物理メモリーを持つシステム上で作業負荷を実行することと似ています。

CPU 使用率への影響

リソース上限デーモンの CPU 使用率は、このデーモンが上限を制限するプロジェクトの作業負荷内のプロセスの数と、作業負荷のアドレス空間のサイズによって変化します。

リソース上限デーモンの CPU 時間の一部は、作業負荷の使用率のサンプリングに費やされます。作業負荷にプロセスを追加すると、使用率のサンプリングにかかる時間が増えます。

上限値を超えると上限が制限され、リソース上限デーモンの CPU 時間がさらに消費されます。消費される CPU 時間は仮想メモリーの量に比例します。消費される CPU 時間は、作業負荷のアドレス空間の合計サイズの変化によって増減します。この情報は、rcapstat の出力の vm 列に報告されます。詳細は、rcapstat によるリソース使用効率のモニタリングおよび rcapstat(1) のマニュアルページを参照してください。

共有メモリーの報告

rcapd デーモンは、ほかのプロセスと共有されているメモリーページ、あるいは、同じプロセス内で複数回マッピングされているメモリーページについて、かなり正確な RSS の見積もりを報告します。異なるプロジェクトのプロセスが同じメモリーを共有している場合、そのメモリーは、そのメモリーを共有しているすべてのプロジェクトの RSS の合計に含められます。

この見積もりは、データベースのように共有メモリーを多用する作業負荷に使用できます。データベースの作業負荷では、次のようにプロジェクトの通常の使用率をサンプリングすることによって、適切な初期上限値を決定することもできます。prstat コマンドに –J または –Z オプションを付けて実行し、その出力を使用します。詳細は、prstat(1M) のマニュアルページを参照してください。