Oracle® Solaris 11.2 でのリソースの管理

印刷ビューの終了

更新: 2014 年 7 月
 
 

リソース制御値に対応付けられた大域アクションと局所アクション

リソース制御値に対応付けられるアクションには 、2 種類あります。 大域アクションと局所アクションです。

リソース制御値に対応付けられた大域アクション

大域アクションは、システム上のすべてのリソース制御のリソース制御値に適用されます。rctladm コマンド (rctladm(1M) のマニュアルページに記載) を使用すると、次のアクションを実行できます。

  • アクティブなシステムリソース制御の大域的状態を表示します

  • 大域ログ作成アクションを設定します

リソース制御に対応付けられた大域ログ作成アクションは、無効にしたり有効にしたりできます。syslog アクションの程度を設定するには、重要度を syslog=level のように割り当てます。level に設定できる値は次のとおりです。

  • debug

  • info

  • notice

  • warning

  • err

  • crit

  • alert

  • emerg

デフォルトでは、リソース制御の違反は大域ログ作成では記録されません。レベル n/a は、大域アクションを構成できないリソース制御を示します。

リソース制御値に対応付けられた局所アクション

局所アクションは、制御値を超えようとしているプロセスに対して実行されます。リソース制御に設定された各しきい値に対して、1 つ以上のアクションを対応付けることができます。局所アクションには、3 つの種類があります。 nonedeny、および signal= です。これら 3 つのアクションは、次のように使用されます。

none

しきい値を超える量のリソース要求に対して、何のアクションも行いません。このアクションは、アプリケーションの進行に影響を与えることなく、リソースの使用状況をモニターするのに役立ちます。プロセスがリソース制御のしきい値を超えたときに大域メッセージを表示することもできます。ただし、このアクションによってプロセスが影響を受けることはありません。

deny

しきい値を超える量のリソース要求を拒否できます。たとえば、task.max-lwps リソース制御に deny アクションが指定されている場合、制御値を超えるような新しいプロセスを作成する fork システムコールは失敗します。fork(2) のマニュアルページを参照してください。

signal=

リソース制御値を超えたときに大域シグナルメッセージを送信するアクションを有効にすることができます。プロセスがしきい値を超えると、プロセスにシグナルが送信されます。プロセスがさらにリソースを消費しても、追加のシグナルが送信されることはありません。使用できるシグナルの一覧については、Table 6–3 を参照してください。

すべてのリソース制御にすべてのアクションを適用できるわけではありません。たとえば、プロセスは、その所属先のプロジェクトに割り当てられている CPU 配分を超えることはできません。したがって、project.cpu-shares リソース制御に deny アクションを適用することはできません。

実装上の制限により、しきい値に設定できるアクションは、各制御の大域プロパティーによって制限されます。rctladm(1M) のマニュアルページを参照してください。次の表に、使用できるシグナルアクションを示します。シグナルの詳細については、signal(3HEAD) のマニュアルページを参照してください。

表 6-3  リソース制御値に使用できるシグナル
シグナル
説明
注意事項
SIGABRT
プロセスを終了します。
SIGHUP
ハングアップシグナルを送信します。開いた回線上でキャリアが検出されなくなったときに発生します。シグナルは、端末を制御しているプロセスグループに送信されます。
SIGTERM
プロセスを終了します。ソフトウェアによって送信される終了シグナルです。
SIGKILL
プロセスを終了し、プログラムを強制終了します。
SIGSTOP
プロセスを停止します。ジョブ制御シグナルです。
SIGXRES
リソース制御の制限超過です。リソース制御機能によって生成されます。
SIGXFSZ
プロセスを終了します。ファイルサイズの制限超過です。
RCTL_GLOBAL_FILE_SIZE プロパティー (process.max-file-size) を持つリソース制御だけで使用可能です。詳細は、rctlblk_set_value(3C) のマニュアルページを参照してください。
SIGXCPU
プロセスを終了します。CPU 時間の制限超過です。
RCTL_GLOBAL_CPUTIME プロパティー (process.max-cpu-time) を持つリソース制御だけで使用可能です。詳細は、rctlblk_set_value(3C) のマニュアルページを参照してください。