Oracle Solaris のシステム管理 (Oracle Solaris コンテナ : 資源管理と Oracle Solaris ゾーン)

資源制御の概念

Solaris オペレーティングシステムでは、プロセスごとの資源制限という概念が、第 2 章プロジェクトとタスク (概要)で説明したタスクおよびプロジェクトのエンティティーに拡張されています。この拡張機能は、資源制御 (rctls) 機能によって提供されます。また、割り当ては /etc/system 調整可能パラメータを通して設定していましたが、これも資源制御機構を通して自動的に行われるか、手動で構成するようになりました。

資源制御には、接頭辞 zoneprojecttask、または process が付きます。資源制御はシステム全体に適用できます。動作中のシステム上の資源制御値を更新できます。

このリリースで使用できる標準の資源制御のリストについては、「使用可能な資源制御」を参照してください。ゾーンごとに使用可能な資源制御については、「資源タイプのプロパティー」を参照してください。

このリリースで使用できる標準の資源制御のリストについては、「使用可能な資源制御」を参照してください。

資源制限と資源制御

従来から、UNIX システムには資源制限機能があります (rlimit)。rlimit の機能を使用すると、管理者は、プロセスが消費できる資源の量に対して 1 つ以上の数値制限を設定できます。この制限には、プロセスごとの CPU 使用時間、プロセスごとのコアファイルサイズ、プロセスごとの最大ヒープサイズが含まれます。「ヒープサイズ」は、プロセスのデータセグメントに割り当てられるスクラッチメモリー領域のサイズです。

資源制御機能は、資源制限機能に対する互換性インタフェースを提供します。資源制限機能を使用する既存のアプリケーションは、変更せずに、引き続き使用できます。また、既存のアプリケーションは、資源制御機能を利用するように変更されたアプリケーションと同様に監視することができます。

プロセス間通信と資源制御

プロセスは、数種類のプロセス間通信 (IPC) の 1 つを使用して、互いに通信できます。IPC を使用すると、プロセス間で情報の転送や同期化を行うことができます。Solaris 10 リリースの前は、/etc/system ファイルにエントリを追加することで、IPC 調整可能パラメータを設定していました。今後は、資源制御機能により、カーネルの IPC 機能の動作を定義する資源制御が提供されるようになりました。これらの資源制御は、/etc/system の調整可能パラメータを置換します。

古いパラメータが、Solaris システムの /etc/system ファイルに入っていることがあります。その場合、これらのパラメータは、以前の Solaris リリースの場合と同様に、デフォルトの資源制御値の初期化に使用されます。ただし、古いパラメータはできるだけ使用しないでください。

どの IPC オブジェクトがプロジェクトの使用状況に影響を与えているかを監視するには、ipcs コマンドに -J オプションを付けて実行します。表示例については、ipcs を使用する方法」を参照してください。ipcs コマンドの詳細については、ipcs(1) のマニュアルページを参照してください。

Solaris システムの調整については、『Oracle Solaris カーネルのチューンアップ・リファレンスマニュアル』を参照してください。

資源制御の制約機構

資源制御機能は、システム資源に対する制約機構を提供します。これにより、プロセス、タスク、プロジェクト、およびゾーンが、指定したシステム資源を過剰消費することを防止できます。この機構は、資源の過剰消費を防ぐことにより、より管理しやすいシステムを実現します。

制約機構は、容量計画を実施するときにも使用できます。制約を設けることにより、アプリケーションへの資源の提供を必ずしも拒否することなく、アプリケーションが必要とする資源量に関する情報を取得できます。

プロジェクトの属性機構

また、資源制御は、資源管理機能のための簡単な属性機構としても利用できます。たとえば、公平配分スケジューラ (FSS) のスケジューリングクラスで動作しているプロジェクトで利用できる CPU の配分は、資源制御 project.cpu-shares によって定義されます。プロジェクトは資源制御によって一定の配分を割り当てられるため、制御の超過につながる各種のアクションは許可されません。そのため、資源制御 project.cpu-shares の現在値は、指定したプロジェクトの属性とみなすことができます。

また、プロジェクト内のプロセスの集合が消費する物理メモリーを規制するには、別の種類のプロジェクト属性が使用されます。これらの属性には、接頭辞 rcap が付きます (たとえば、rcap.max-rss)。資源制御と同様に、この種類の属性も project データベース中に構成します。資源制御はカーネルによって同期的に実行されますが、物理メモリーの資源上限の制限は資源上限デーモン rcapd によってユーザーレベルで非同期的に強制実行されます。rcapd については、第 10 章資源上限デーモンによる物理メモリーの制御 (概要)および rcapd(1M) のマニュアルページを参照してください。

project.pool 属性は、プロジェクトのプールの結合を指定するために使用されます。資源プールの詳細については、第 12 章資源プール (概要)を参照してください。