Solaris 8 OS では、ユーザーベースのコンテナだけを使用できます。
アプリケーションベースのプロジェクトを使用して、特定のソフトウェアアプリケーションで実行されるプロセスを管理します。プロセスが自動的に移動するか、プロセスを手動で移動できるアプリケーションベースのプロジェクトを作成できます。
アプリケーションに固有の一致式を指定できる場合は、この式をプロジェクトに追加できます。この場合、プロセスの実行に使用される UNIX ユーザー ID または UNIX グループ ID も指定する必要があります。後でプロジェクトに加わることができるユーザーまたはグループも追加できます。プロジェクトにプロセスを自動的に移動するには、ウィザードの対応するパネルが表示されたときに、必要なプロジェクト識別子をすべて指定する必要があります。識別子を指定すると、この定義に基づくすべてのプロジェクトで、一致するプロセスがすべて自動的に移動します。
アプリケーションに固有の識別子が作成されない場合は、プロセスを手動で移動するか、プロジェクト内でアプリケーションを起動できます。プロセスを手動で移動する場合は、プロセスの実行に使用される UNIX ユーザー ID または UNIX グループ ID だけでプロジェクトを作成します。後でプロジェクトに加わることができるユーザーまたはグループも追加できます。そして、newtask -p コマンドでプロセスを移動します。詳細は、「プロジェクト内でのプロセスの移動または起動」を参照してください。
管理するアプリケーションに対応するプロセスを識別する適切な一致式を決定するには、次の手順に従います。プロセスをコンテナに自動的に移動するには、新規コンテナウィザードでこの式を指定する必要があります。
端末ウィンドウから、アプリケーションベースのコンテナで管理するアプリケーションを起動します。
実行中のすべてのプロセスの一覧を表示するには、端末ウィンドウで次のように入力します。
% ps -cafe |
CMD 列で対応する実行可能ファイルの名前を探します。
アプリケーションのプロセスを一意に識別する式を選択します。
Mozilla を探すために入力した ps - cafe コマンドの出力例を次に示します。
% ps -cafe UID PID PPID CLS PRI STIME TTY TIME CMD ... username 8044 7435 IA 50 19:47:09 pts/11 0:00 /bin/ksh -p /usr/sfw/lib/mozilla/mozilla |
この例では、固有の実行可能ファイルの名前は mozilla です。したがって、適切な一致式は mozilla になります。
アプリケーションの名前がわかっている場合は、ps -cafe コマンドと grep コマンドを組み合わせて使用して適切な一致式を確認できます。Tomcat サーバーを探すために入力した ps - cafe | grep tomcat コマンドの出力例を次に示します。この例では、関係のない情報を省いています。
% ps -cafe | grep tomcat nobody 27307 /usr/j2se/bin/java -classpath //usr/apache/tomcat/bin/bootstrap.jar:/usr/j2se/l |
この例では、実行可能ファイルの名前は java です。ただし、適切な一致式は tomcat です。この場合、一致式は、実行可能ファイルの名前ではなく、引数です。なぜなら、java では、Tomcat のプロセスを一意に識別できないからです。
次の例では、pgrep コマンドを使用して PID を検索する方法を示します。PID は、必要なプロセスを検索するための固有の一致式を指定したことを示します。
% pgrep -f tomcat 27307 |
Tomcat サーバーの PID は 27307 です。この数値は、例 4–2 の PID と一致します。したがって、一致式 tomcat が Tomcat サーバーのプロセスと一致することが確認できます。
「新規プロジェクトウィザードを起動する」に従って新規プロジェクトウィザードを起動します。
「概要」パネルが表示されます。
コンテナのプロジェクトの種類として「アプリケーション」を選択します。
アプリケーションベースのプロジェクトコンテナでは、アプリケーションに関連付けられているプロセスが追跡されます。このプロジェクトの種類については、表 3–2 を参照してください。
プロジェクトの名前を指定します。
名前は、一意であり、32 文字以内である必要があります。ナビゲーションウィンドウ、各一覧表、およびリソース使用状況レポートでこの名前でプロジェクトが識別されます。重複する名前を入力すると、プロジェクトの作成に失敗します。
作成処理の完了後は、コンテナ名を変更できません。
アプリケーションのプロセスの実行に使用される UNIX ユーザー名または UNIX グループ名を指定します。
この UNIX ユーザー名または UNIX グループ名は必須です。名前を指定しなかった場合、名前を指定するまで、対応するプロセスがコンテナ下に移動しません。複数の名前を入力する場合は、コンマで区切ります。
コンテナが有効になったときにアプリケーションのプロセスをプロジェクト下に自動的に移動するか、コマンド行から手動で移動するかを指定します。
アプリケーションのプロセスをコマンド行から手動で移動するには、「一致式を使用しない」チェックボックスを選択します。
プロジェクトが有効になったときにアプリケーションのプロセスをプロジェクト下に自動的に移動するには、「一致式」フィールドに式を指定します。
「一致式」フィールドでは、アプリケーションに関連付けられているプロセスを識別するワイルドカードを使用できます。たとえば、Mozilla に関連するプロセスは moz、Tomcat に関連するプロセスは cat と指定できます。
アプリケーションのプロセスを自動的にコンテナに移動するには、一致式を指定する必要があります。一致式では、大小文字が区別されます。適切な一致式を決定するには、「アプリケーションの一致式を決定する」を参照してください。
この時点で一致式を指定しなかった場合、式を指定するまで、アプリケーションのプロセスはこのコンテナ下に移動しません。
ホスト名から、プールを選択せずに新規プロジェクトウィザードを起動した場合は、プロジェクトのリソース要件を満たすリソースプールを割り当てます。
プロジェクト内で開始された新規プロセスは、対応するリソースプールにバインドされます。プロジェクトが有効になったら、コンテナで保持されている新規プロセスがそのリソースプールにバインドされます。
新規リソースプールを割り当てるには、次の操作を行います。
「新規リソースプールを作成」を選択します。
リソースプールの名前を指定します。
名前には英数字を使用し、空白文字を含めることはできません。ハイフン (-)、下線 (_)、およびピリオド (.) の各文字は使用できます。
CPU 数を割り当てます。
CPU 数は、ホスト上で使用可能な CPU 数以下、1 以上の整数である必要があります。ホスト上の CPU の総数と、現在、使用可能な数が表示されます。
既存のプールを割り当てるには、次の操作を行います。
「既存のリソースプールを使用」を選択します。
使用可能なリソースプールのリストが表示されます。
リスト内のプール名の横のラジオボタンを選択します。
各リソースプールに割り当てられている CPU の総数と、各プール内で予約されていない CPU 数が表示されます。プロジェクトが、選択したリソースプールにバインドされます。
(Solaris 10 のみ) 既存のゾーンを選択します。
使用可能なゾーンのボタンをクリックします。
プロジェクトのリソース予約を指定します。
ホストの最大 CPU 数、予約されていない CPU シェア数、および使用可能なメモリーリソースを指定します。
CPU 予約数 (CPU シェア数) は必須で、整数で指定する必要があります。CPU 予約数がゼロのプロジェクトは、同じホストに関連付けられているほかのコンテナ内で実行中のプロセスがない場合にのみ CPU リソースを使用できます。
メモリーキャップは省略可能で、M バイト単位で指定します。
共有メモリーの値は、このプロジェクト内で実行されるプロセスで使用できる共有メモリーの総容量です。共有メモリーも省略可能です。共有メモリーのデフォルト値は、物理メモリーの 4 分の 1 です。
コンテナの名前を指定します。
名前は、一意であり、32 文字以内である必要があります。ナビゲーションウィンドウ、各一覧表、およびリソース使用状況レポートでこの名前でコンテナが識別されます。重複する名前を入力すると、コンテナの作成に失敗します。作成処理の完了後は、コンテナ名を変更できません。
(省略可能) コンテナの説明を入力します。
「概要」パネルで設定を確認します。
「完了」をクリックします。
設定が保存され、コンテナが有効になります。Solaris カーネルによって、コンテナのリソース予約が開始されます。