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

印刷ビューの終了

更新: 2016 年 11 月
 
 

リソース制御の概念

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

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

このリリースで使用できる標準のリソース制御のリストについては、使用可能なリソース制御を参照してください。使用可能なゾーン規模のリソース制御については、使用可能なリソース制御を参照してください。

リソース制限とリソース制御

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

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

プロセス間通信とリソース制御

プロセスは、複数の種類のプロセス間通信 (IPC) の 1 つを使用して、互いに通信できます。IPC を使用すると、プロセス間で情報の転送や同期化を行うことができます。リソース制御機能により、カーネルの IPC 機能の動作を定義するリソース制御が提供されます。これらのリソース制御は、/etc/system の調整可能パラメータを置換します。

デフォルトのリソース制御値の初期化に使用される廃止済みパラメータが、この Oracle Solaris システム上の /etc/system ファイルに含まれている場合があります。ただし、古いパラメータはできるだけ使用しないでください。

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

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

リソース制御の制約メカニズム

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

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

プロジェクトの属性メカニズム

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

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

project.pool 属性は、プロジェクトのプールの結合を指定するために使用されます。リソースプールの詳細は、リソースプールについてを参照してください。