「QMON Policy Configuration」ダイアログボックス (図 5–1) で「Share Tree Policy」をクリックします。「Share Tree Policy」ダイアログボックスが表示されます。
「Node Attributes」の下には、選択したノードの属性が表示されます。
Identifier。 ユーザー、プロジェクト、またはその集団の名前です。
Shares。このユーザーまたはプロジェクトに割り当てられている配分数です。
配分は相対的な重要性を定義します。百分率値ではありません。また、数量的な意味もありません。大きな数字を使用すると重要性の関係を細かく調整できるため、一般には、百または千台の数字で配分を指定することを推奨します。
Level Percentage。 このツリーの同じ親ノードレベルでの配分合計に対して、このノードが占める割合です。その兄弟の配分の合計で除算した、このノードの配分の数です。
Total Percentage。共有ツリー全体での合計配分に対するこのノードの割合です。ノードの長期的な目標リソース配分です。
Actual Resource Usage。 累積期間中にこのノードがこれまでに消費した、システムの全リソースに対する割合です。百分率は、共有ツリーのすべてのノードに対して表されたものです。
Targeted Resource Usage。「Actual Resource Usage」と同じですが、共有ツリーで現在アクティブなノードだけが考慮されます。アクティブなノードとはシステムにジョブがあるノードです。短期には、Grid Engine システムはアクティブなノードの間でエンタイトルメントのバランスをとろうとします。
Combined Usage。このノードの使用率の合計です。「Combined Usage」はこのノードで累積された使用率の合計です。リーフノードは、その下で実行されるすべてのジョブの使用率を累積します。内部ノードは、すべての子孫ノードの使用率を累積します。「Combined Usage」には「Share Tree Policy Parameters」で指定された割合に従い、CPU 、メモリー、および I/O 使用率が含まれます。「Combined Usage」はパラメータによって指定された半減期減少率で減少します。
ユーザーノードまたはプロジェクトノードを削除して、追加して戻しても、そのユーザーまたはプロジェクトの使用率は残ります。ノードは、共有ツリー内の同じ場所または別の場所に追加して戻すことができます。ノードを共有ツリーに追加して戻す前に、その使用率をゼロにすることができます。このためには、まず Grid Engine システムで構成したユーザーまたはプロジェクトからノードを削除します。続いて、その場所のユーザーまたはプロジェクトにノードを追加して戻します。
共有ツリーに存在しなかったにもかかわらず、ジョブを実行したユーザーまたはプロジェクトを、共有ツリーに追加すると、その使用率はゼロ以外の値になります。そのようなユーザーまたはプロジェクトをツリーに追加する際に、使用率をゼロにするには、Grid Engine システムで構成したユーザーまたはプロジェクトからそのユーザーまたはプロジェクトを削除します。続いて、そのユーザーまたはプロジェクトをツリーに追加します。
選択したノードの下に内部ノードを追加するには、「Add Node」をクリックします。空の「Node Info」ウィンドウが表示され、このウィンドウにノードの名前と配分の数を入力できます。任意のノード名または配分の数を入力できます。
選択したノードの下にリーフノードを追加するには、「Add Leaf」をクリックします。空の「Node Info」ウィンドウが表示され、このウィンドウにノードの名前と配分の数を入力できます。ノードの名前は、既存の Grid Engine ユーザー (「QMON を使用したユーザーオブジェクトの構成」) またはプロジェクト (「プロジェクトの定義」) でなければなりません。
リーフノードを追加する際には、次の規則が適用されます。
共有ツリー内のすべてのノードが固有のパスを持つこと。
共有ツリーで同じプロジェクトを複数回参照しないこと。
プロジェクトサブツリーに同じユーザーが 1 回しか現れないこと。
プロジェクトサブツリーの外部に同じユーザーが 1 回しか現れないこと。
ユーザーがリーフ以外のノードに現れないこと。
プロジェクトサブツリー内のあらゆるリーフノードが既知のユーザーか予約名の default を参照すること。この特殊なユーザーについての詳細は、「特殊ユーザー default について」を参照してください。
プロジェクトサブツリー内にサブプロジェクトを含まないこと。
プロジェクトサブツリー内に存在しないあらゆるリーフノードが既知のユーザーかプロジェクトを参照すること。
プロジェクトサブツリー内のあらゆるユーザーリーフノードにプロジェクトへのアクセス権があること。
選択したノードを編集するには、「Modify」をクリックします。「Node Info」ウィンドウが表示されます。ウィンドウにはモードの名前と、配分の数が表示されます。
選択したノードのカットまたはバッファーへのコピーを行うには、「Cut」または「Copy」をクリックします。直前にカットまたはコピーしたノードの内容を、選択したノードの下にペーストするには、「Paste」をクリックします。
選択したノードとそのすべての子孫を削除するには、「Delete」をクリックします。
共有ツリー階層全体をクリアするには、「Clear Usage」をクリックします。共有ベースポリシーを予算に合わせて、各予算編成時期に最初からやり直す必要がある場合に、階層をクリアします。「Clear Usage」機能は、N1 Grid Engine 6.1 ソフトウェアのテスト環境を設定したり、変更したりする際にも便利です。
QMON は、「Share Tree Policy」ダイアログボックスに表示される情報を定期的に更新します。ただちに表示を更新させるには、「Refresh」をクリックします。
行なったすべてのノードの変更を保存するには、「Apply」をクリックします。変更を保存することなくダイアログボックスを閉じるには、「Done」をクリックします。
共有ツリーでノード名を検索するには「Find」をクリックしてから検索文字列を入力します。検索文字列は大文字と小文字が区別され、その文字列から始まるノード名が表示されます。次に一致する検索文字列を検索するには、「Find Next」をクリックします。
オンラインヘルプシステムを開くには、「Help」をクリックします。
「Share Tree Policy Parameters」を表示するには、「Node Attributes」の右側にある矢印をクリックします。
CPU [%] スライダ — このスライダの設定は、CPU が使用合計に占める割合を示します。このスライダを動かすと、CPU の割合の変化を補正するため、MEM および I/O スライダも変化します。
MEM [%] スライダ — このスライダの設定は、メモリーが使用合計に占める割合を示します。このスライダを動かすと、MEM の割合の変化を補正するため、CPU および I/O スライダも変化します。
I/O [%] slider — このスライダの設定は、I/O が使用合計に占める割合を示します。このスライダを動かすと、I/O の割合の変化を補正するため、CPU および MEM スライダも変化します。
CPU [%]、MEM [%]、および I/O [%] の合計は常に 100% になります。
錠のシンボル — 錠が開いていると、錠が保護するスライダが自由に動くことができます。直接操作されることによって動くことも、別のスライダが動かされたため、それを補正するために動くこともあります。
錠が閉じていると、錠が保護するスライダは動きません。2 つの錠が閉じていて 1 つが開いている場合は、どのスライダも動かせません。
「Half-life」 — このフィールドを使用して、リソース使用に対する半減期を指定します。使用率は、スケジューリング間隔のたびに減少し、累積利用量に関わるリソース使用があると、半減期の経過後にその値が半分になります。
「Days/Hours」選択メニュー — 半減期の測定単位を日数または時間数のどちらにするか選択します。
「Compensation Factor」 — このフィールドは、正の整数値の補正係数を受け付けます。適切な値は 2 から 10 の範囲です。
ユーザーまたはプロジェクトの実際の使用率が、目標使用率を大きく下回っていることがあります。補正係数は、このようなユーザーまたはプロジェクトが、はじめてリソースを取得するときにリソースを優先使用するのを防ぎます。詳細については、「補正係数」を参照してください。
多数のユーザーがいるサイトでは、特殊なユーザー default を使用して、共有ツリーを保守する作業量を減らすことができます。共有ツリーポリシーにおいては、ジョブの優先順位は、ジョブが共有ツリー内で対応するノードに基づいて決定されます。共有ツリー内で明示的に名前が付けられていないユーザーは、(存在する場合) default ノードに割り当てられます。
1 つの default ノードを指定することで、シンプルな共有ツリーの作成が可能になります。このような共有ツリーにより、ユーザーに基づく公正な分配が可能になります。
また、大部分のユーザーに同じ共有エンタイトルメントが割り当てられている場合でも、default ユーザーを使用できます。同じ共有エンタイトルメントは、均等配分スケジューリングとも呼ばれます。
default ユーザーは、default ノードの下ですべてのユーザーエントリを構成し、各ユーザーに同じ配分量を与えます。ジョブを発行する各ユーザーは、default ユーザーに対して構成されているのと同じ共有エンタイトルメントを受け取ります。特定のユーザーに対してこの機能を有効にするには、Grid Engine ユーザーのリストにこのユーザーを追加する必要があります。
共有ツリーでは、default ノードに割り当てられているすべてのユーザーに関して、「仮想」ノードが表示されます。仮想ノードを表示することで、default ノードに割り当てられているユーザーに関して、使用率と、公正な配分スケジューリングのパラメータを調べることができます。
また、「ハイブリッド」の共有ツリーに対して default ユーザーを使用することもできます。このツリーでは、ユーザーは共有ツリー内のプロジェクトの従属下に置かれます。default ユーザーは、プロジェクトノードのリーフノードになることができます。
ユーザーの短期エンタイトルメントは、ユーザーが消費するリソース量の違いにより異なります。ただし、ユーザーの長期エンタイトルメントは同じままになります。
一部のユーザーにだけ低い、または高いエンタイトルメントを割り当てて、ほかのすべてのユーザーには同じ長期エンタイトルメントを維持したい場合があります。このためには、特別なエンタイトルメントを持つのユーザー用の default ユーザーの隣に、個別のユーザーエントリを含む共有ツリーを構成します。
例 A では、プロジェクト A に発行するすべてのユーザーが同じ長期エンタイトルメントを得ます。プロジェクト B に発行するユーザーは、プロジェクト B の累積リソース消費量に関係します。プロジェクト B のユーザーのエンタイトルメントは管理されません。
例 A と例 B を比較してください。
例 B では、プロジェクト A に対する扱いは、例 A のときと同じです。しかし、ユーザー A および B を除き、プロジェクト B にジョブを発行するすべてのデフォルトユーザーは、同等の長期のリソースエンタイトルメントを得ます。デフォルトのユーザーは 20 の配分を持ちます。ユーザー A の配分は 10 で、受けるエンタイトルメントはデフォルトユーザーの半分です。ユーザー B の配分は 40 で、受けるエンタイトルメントはデフォルトユーザーの 2 倍です。