リソース制御値に対応付けられるアクションには 、2 種類あります。 大域アクションと局所アクションです。
大域アクションは、システム上のすべてのリソース制御のリソース制御値に適用されます。rctladm コマンド (rctladm(1M) のマニュアルページに記載) を使用すると、次のアクションを実行できます。
アクティブなシステムリソース制御の大域的状態を表示します
大域ログ作成アクションを設定します
リソース制御に対応付けられた大域ログ作成アクションは、無効にしたり有効にしたりできます。syslog アクションの程度を設定するには、重要度を syslog=level のように割り当てます。level に設定できる値は次のとおりです。
debug
info
notice
warning
err
crit
alert
emerg
デフォルトでは、リソース制御の違反は大域ログ作成では記録されません。レベル n/a は、大域アクションを構成できないリソース制御を示します。
局所アクションは、制御値を超えようとしているプロセスに対して実行されます。リソース制御に設定された各しきい値に対して、1 つ以上のアクションを対応付けることができます。局所アクションには、3 つの種類があります。 none、deny、および signal= です。これら 3 つのアクションは、次のように使用されます。
しきい値を超える量のリソース要求に対して、何のアクションも行いません。このアクションは、アプリケーションの進行に影響を与えることなく、リソースの使用状況をモニターするのに役立ちます。プロセスがリソース制御のしきい値を超えたときに大域メッセージを表示することもできます。ただし、このアクションによってプロセスが影響を受けることはありません。
しきい値を超える量のリソース要求を拒否できます。たとえば、task.max-lwps リソース制御に deny アクションが指定されている場合、制御値を超えるような新しいプロセスを作成する fork システムコールは失敗します。fork(2) のマニュアルページを参照してください。
リソース制御値を超えたときに大域シグナルメッセージを送信するアクションを有効にすることができます。プロセスがしきい値を超えると、プロセスにシグナルが送信されます。プロセスがさらにリソースを消費しても、追加のシグナルが送信されることはありません。使用できるシグナルの一覧については、Table 6–3 を参照してください。
すべてのリソース制御にすべてのアクションを適用できるわけではありません。たとえば、プロセスは、その所属先のプロジェクトに割り当てられている CPU 配分を超えることはできません。したがって、project.cpu-shares リソース制御に deny アクションを適用することはできません。
実装上の制限により、しきい値に設定できるアクションは、各制御の大域プロパティーによって制限されます。rctladm(1M) のマニュアルページを参照してください。次の表に、使用できるシグナルアクションを示します。シグナルの詳細については、signal(3HEAD) のマニュアルページを参照してください。
|