機能スケジューリングは、ジョブの重要性を決定するための、非フィードバック方法です。機能スケジューリングは、ジョブと、発行を行うユーザー、プロジェクト、部署、およびジョブクラスを関連付けます。機能スケジューリングは、プライオリティスケジューリングと呼ばれることもあります。機能ポリシーの設定により、定義済みの配分が常に各ユーザー、プロジェクト、または部署に保証されます。予定よりも少ないリソースを使用したユーザー、プロジェクト、または部署のジョブが優先されるのは、システムがアイドル状態のリソースに対してジョブを振り分けた場合のみです。
同時に、未使用の配分の比率は、リソースを必要とするユーザー、プロジェクト、および部署で分配されるため、完全なリソースの使用が保証されます。過去のリソース消費は考慮されません。
ジョブの実際のエンタイトルメントを決定する際に、システムリソースに対する機能ポリシーのエンタイトルメントは、そのほかのエンタイトルメントと結び付けられます。たとえば、機能ポリシーのエンタイトルメントは、共有ベースポリシーのエンタイトルメントと結び付けられる場合があります。
機能ポリシーに割り当てられたチケットの合計数は、3 つのスケジューリングポリシーの間での機能スケジューリングの重みを決定します。インストール時に、管理者は機能チケットの合計数を、ユーザー、部署、プロジェクト、ジョブ、およびジョブクラスの機能カテゴリに分割します。
機能共有は、各機能カテゴリ (ユーザー、部署、プロジェクト、ジョブ、ジョブクラス) のあらゆるメンバーに割り当てられます。それらの配分は、カテゴリのメンバーに関連付けられている各ジョブが受ける資格を持つ、そのカテゴリ用のチケット全体に占める割合を示します。たとえば、ユーザー davidson が 200、ユーザー donlee が 100 の配分の場合、存在するチケット数に関係なく、davidson が発行するジョブは donlee のジョブよりも 2 倍多くの user-functional-tickets を得ることができます。
各カテゴリに割り当てられた機能チケットは、特定のカテゴリに関連付けられているすべてのジョブ間で分配されます。
「QMON Policy Configuration」ダイアログボックスの下部にある「Functional Policy」をクリックします。「Functional Policy」ダイアログボックスが表示されます。
機能共有を定義する対象の機能カテゴリ (ユーザー、プロジェクト、部署、またはジョブ) を選択します。
「Functional Shares」の下にあるテーブルはスクロール可能です。テーブルには次の情報が表示されます。
「Function Category」リストから現在選択されているカテゴリのメンバーのリスト。
カテゴリの各メンバーの機能共有の数。配分は、機能カテゴリの各メンバーの相対的な重要性を表す便利な指標として使用できます。このフィールドは編集可能です。
この機能共有の数が表す、機能チケットのこのカテゴリに関する、機能共有の割り当てのパーセンテージ。このフィールドはフィードバックデバイスで、編集はできません。
QMON は、「Functional Policy」ダイアログボックスに表示される情報を定期的に更新します。ただちに表示を更新させるには、「Refresh」をクリックします。
行なったすべてのノードの変更を保存するには、「Apply」をクリックします。変更を保存することなくダイアログボックスを閉じるには、「Done」をクリックします。
「Functional Shares」テーブルの上にある曲がった矢印をクリックして、構成ダイアログボックスを開きます。
「User」の機能共有の場合、「User Configuration」ダイアログボックスが表示されます。Grid Engine ユーザーの構成を変更するために、「User」タブを使用して適切なモードに切り替えます。「QMON を使用したユーザーオブジェクトの構成」を参照してください。
「Department」の機能共有の場合、「User Configuration」ダイアログボックスが表示されます。ユーザーセットとして表示されているデパートメントの構成を変更するために、「Userset」タブを使用して適切なモードに切り替えます。「プロジェクトおよび部署としてのユーザーセットの定義」を参照してください。
「Project」の機能共有の場合、「Project Configuration」ダイアログボックスが表示されます。「QMON を使用したプロジェクトの定義」を参照してください。
「Job」の機能共有の場合、「Job Control」ダイアログボックスが表示されます。『Sun N1 Grid Engine 6.1 ユーザーズガイド』の「QMON を使用したジョブの監視と制御」を参照してください。
「Ratio Between Sorts Of Functional Tickets」を表示するには、「Functional Shares」テーブルの右側にある矢印をクリックします。
「User [%]」、「Department [%]」、「Project [%]」、「Job [%]」および「Job Class [%]」の合計は常に 100% になります。
いずれかのスライダを動かすと、変化を補うために、ロックされていないそのほかすべてのスライダが変化します。
ロックが開いている場合は、ロックが保護するスライダは自由に動きます。直接操作されることによって動くことも、別のスライダが動かされたために、動くこともあります。錠が閉じていると、錠が保護するスライダは動きません。4 つの錠が閉じていて 1 つが開いている場合は、どのスライダも動かせません。
「User」スライダ – 機能チケット全体からユーザーカテゴリに割り当てる割合を示します。
「Departments」スライダ – 機能チケット全体からデパートメントカテゴリに割り当てる割合を示します。
「Project」スライダ – 機能チケット全体からプロジェクトカテゴリに割り当てる割合を示します。
「Job」スライダ – 機能チケット全体からジョブカテゴリに割り当てる割合を示します。
QMON を使用する場合にのみ機能共有をジョブに割り当てることができます。この機能に関してはコマンド行インタフェースは使用できません。
コマンド行から機能共有ポリシーを構成するには、適切なオプションを指定した qconf コマンドを使用します。
ユーザーカテゴリを構成するには、qconf -muser コマンドを使用します。-muser オプションは、ユーザーエントリファイルの fshare パラメータを変更します。ユーザーエントリファイルの詳細については、user(5) のマニュアルページを参照してください。
部署カテゴリを構成するには、qconf -mu コマンドを使用します。-mu オプションは、アクセスリストファイルの fshare パラメータを変更します。部署を表すために使用されるアクセスリストファイルの詳細については、access_list(5) のマニュアルページを参照してください。
プロジェクトカテゴリを構成するには、qconf -mprj コマンドを使用します。-mprj オプションは、プロジェクトエントリファイルの fshare パラメータを変更します。プロジェクトエントリファイルの詳細については、project(5) のマニュアルページを参照してください。
ジョブクラスカテゴリを構成するには、qconf -mq コマンドを使用します。-mq オプションは、キュー構成ファイルの fshare パラメータを変更します。ジョブクラスを表すために使用されるキュー構成ファイルの詳細については、queue_conf (5) のマニュアルページを参照してください。
さまざまなカテゴリ間の重みは、スケジューラ構成 sched_conf で定義し、qconf -msconf を使用して変更することができます。変更するパラメータは、weight_user、weight_department、weight_project、weight_job、および weight_jobclass です。これらのパラメータの値の範囲は 0 から 1 で、パラメータの合計は 1 になる必要があります。
この設定を使用して、クラスタ内のすべてのリソースのある種の配分割り当てを、さまざまなユーザー、プロジェクト、または部署に対して作成します。同じユーザー、プロジェクト、または部署のジョブでは、先着順のスケジューリングが使用されます。
「Scheduler Configuration」ダイアログボックスで、「Share Functional Tickets」チェックボックスを選択します。
「機能チケットの分配の共有」、および sched_conf(5) のマニュアルページを参照してください。
スケジューラ構成で、機能チケットの数 (1000000 など) を指定します。
「QMON を使用したポリシーに基づくリソース管理の構成」、および sched_conf(5) のマニュアルページを参照してください。
スケジューリング関連の項目を追加します。
スケジューリング関連のユーザーごとに、1 人のユーザーを追加します。
「QMON を使用したユーザーオブジェクトの構成」、および user(5) のマニュアルページを参照してください。
スケジューリング関連のプロジェクトごとに、1 つのプロジェクトを追加します。
「QMON を使用したプロジェクトの定義」、および project (5) のマニュアルページを参照してください。
各スケジューリング関連の部署を追加します。
各ユーザー、プロジェクト、または部署に機能共有を割り当てます。
「QMON を使用したユーザーアクセスリストの構成」、および access_list(5) のマニュアルページを参照してください。
全体に対するパーセンテージとして配分を割り当てます。次に例を示します。
ユーザーの場合
UserA (10)
UserB (20)
UserC (20)
UserD (20)
プロジェクトの場合
ProjectA (55)
ProjectB (45)
部署の場合
DepartmentA (90)
DepartmentB (5)
DepartmentC (5)