キューとは、さまざまなカテゴリのジョブのコンテナです。キューは、同じカテゴリに属する複数のジョブの並行実行のための、対応するリソースを提供します。
N1 Grid Engine 6 では、1 つのキューは、1 つまたは複数のホストと関連付けることができます。キューは複数のホストにまたがることができるため、そのようなキューはクラスタキューと呼ばれます。クラスタキューを使用すると、1 つのクラスタキューの構成で実行ホストのクラスタを管理できます。
クラスタキューに関連付けられている各ホストは、そのホスト上に存在する、そのクラスタキューのインスタンスを受け取ります。本ガイドでは、このようなインスタンスをキューインスタンスと呼びます。クラスタキュー内では、各キューインスタンスを別々に構成できます。個別のキューインスタンスを構成することで、1 つのクラスタキュー構成で、実行ホストの異機種システム混在クラスタを管理できます。
あるクラスタキューを変更する場合、そのキューインスタンスのすべては同時に変更されます。1 つのクラスタキュー内で、複数のキューインスタンスの構成の違いを指定できます。その結果、一般的な設定には少数のクラスタキューのみが含まれ、これらのクラスタキューにより制御されるキューインスタンスは、大部分がバックグラウンドのままになります。
クラスタキューとキューインスタンスの区別は重要です。たとえば、ジョブは常にキューインスタンスで実行され、クラスタキューでは実行されません。
クラスタキューを構成する際には、次のホストオブジェクトの任意の組み合わせを、クラスタキューに関連付けることができます。
1 つの実行ホスト
独立した実行ホストのリスト
1 つまたは複数のホストグループ
並列環境でキューが正しく動作できるようにするには、キューを並列環境に関連付けます。この関連付けによって、リソースのより多くの制御が可能になり、並列作業負荷の処理に特定のキューを割り当てることができます。
queue_conf(5) の pe_list 属性を使用して、適した並列環境を特定してください。次に、QMON ユーティリティーか次の形式の qconf コマンドを使用して、並列環境とキューを関連付けます。
# qconf -mq <queue_name> |
ホストグループは、まとめて同じものとして扱うことができるホストのグループです。ホストグループを使用すると、1 つのホストグループ構成によって複数のホストを管理することができます。ホストグループの詳細については、「QMON を使用したホストグループの構成」を参照してください。
個別ホストをクラスタキューに関連付ける場合、各ホスト上で結果として作成されるキューインスタンスの名前は、クラスタキュー名とホスト名を結び付けたものです。クラスタキュー名とホスト名は、@ 記号で区切ります。たとえば、ホスト myexechost とクラスタキュー myqueue を関連付ける場合、myexechost 上のキューインスタンスの名前は myqueue@myexechost になります。
ホストグループとクラスタキューを関連付ける場合は、キュードメインと呼ばれるものを作成します。キュードメインを使用すると、同じクラスタキューの一部であり、割り当てられたホストが同じホストグループの一部である、キューインスタンスのグループを管理できます。キュードメイン名は、@ を区切り記号として、クラスタキュー名とホストグループ名を結合したものです。たとえば、ホストグループ myhostgroup をクラスタキュー myqueue と関連付ける場合は、キュードメインの名前は myqueue@@myhostgroup になります。
すべてのホストグループ名は @ 記号で始まるため、キュードメイン名には常に 2 つの @ 記号が含まれます。
ジョブは、キューインスタンス内では待機しません。ジョブは、振り分けられるとすぐに実行を開始します。スケジューラの保留中のジョブのリストは、ジョブの唯一の待機領域です。
キューを構成すると、sge_qmaster にキュー属性が登録されます。キューは構成されるとすぐに、クラスタ全体と、Grid Engine システムに属する全ホスト上の全ユーザーに表示されるようになります。
詳細については、queue_conf(5) のマニュアルページを参照してください。
「QMON Main Control」ウィンドウで「Queue Control」ボタンをクリックします。「Cluster Queues」ダイアログボックスが表示されます。
クラスタキューとキューインスタンスの状態を監視および操作するための、「Cluster Queues」ダイアログボックスとその機能は、『Sun N1 Grid Engine 6.1 ユーザーズガイド』の「QMON によるキューの監視と制御」で説明されています。
新しいクラスタキューを追加するには、「Add」をクリックします。
既存のクラスタキューを変更するには、「Cluster Queue」リストからクラスタキューを選択してから「Modify」をクリックします。
「Clone」ボタンを使用すると、既存のクラスタキューのすべてのパラメータをインポートできます。既存のキューのリストから、複製するキューを選択します。
「Add」をクリックすると「Queue Configuration – Add」ダイアログボックスが表示されます。「Modify」をクリックすると「Modify キュー名」ダイアログボックスが表示されます。「Queue Configuration」ダイアログボックスがはじめて表示される際には、「General Configuration」タブが表示されます。
既存のキューを変更する場合、「Queue Name」フィールドにキューの名前が表示されます。キューインスタンスが存在するホストが、「Hostlist」フィールドに表示されます。
新しいクラスタキューを追加する場合、キューの名前と、キューインスタンスが存在するホストの名前を指定する必要があります。
「Hostlist」フィールドでは、個別のホストの名前を指定できます。また、以前に定義したホストグループの名前も指定できます。このクラスタキューのキューインスタンスは、(すべてのホストサブグループのメンバーを含む) ユーザーが指定するホストグループのすべての個別ホストとすべてのメンバー上に存在します。ホストグループの詳細については、「QMON を使用したホストグループの構成」を参照してください。
パラメータのセットを指定するための次の 11 のタブは、キューの定義に使用できます。
「General Configuration」 – 「一般的なパラメータの構成」を参照
「Execution Method」 – 「実行方法パラメータの構成」を参照
「Checkpointing」 – 「チェックポイント設定パラメータの構成」を参照
「Parallel Environment」 – 「並列環境の構成」を参照
「Load/Suspend Thresholds」 – 「負荷および一時停止しきい値の構成」を参照
「Limits」 – 「制限の構成」を参照
「Complex」 – 「コンプレックスリソース属性の構成」を参照
「Subordinates」 – 「従属キューの構成」を参照
「User Access」 – 「ユーザーアクセスパラメータの構成」を参照
「Project Access」 – 「プロジェクトアクセスパラメータの構成」を参照
「Owners」 – 「所有者パラメータの構成」を参照
クラスタキューのデフォルトのパラメータを設定するには、「Attributes for Host/Hostgroup」リストで「@/」を選択してから、設定するパラメータが含まれるタブをクリックします。
デフォルトのパラメータは、「Hostlist」に表示されるすべてのホスト上のすべてのキューインスタンスに対して設定されます。ユーザーは、ユーザーが指定するホストまたはホストグループのデフォルトのパラメータの値を無効にすることができます。ホストまたはホストグループの override パラメータを設定するには、まず「Attributes for Host/Hostgroup」リストから名前を選択します。続いて設定するパラメータを含むタブをクリックします。ユーザーが設定したパラメータの値は、選択したホストまたはホストグループ上の、クラスタキューのデフォルトのパラメータを無効にします。
ホスト固有のパラメータを設定するには、まず構成に対してパラメータを使用可能にする必要があります。設定するパラメータの左側にある錠前のアイコンをクリックしてから、そのパラメータの値を変更します。
「Refresh」ボタンをクリックすると、 「Queue Configuration」ダイアログボックスが開かれていた間に変更されたそのほかのオブジェクトの設定が読み込まれます。
すべてのキュー構成の変更を sge_qmaster に登録するには、「OK」をクリックしてダイアログボックスを閉じます。変更を保存せずにダイアログボックスを閉じるには、「Cancel」をクリックします。
一般的なパラメータを構成するには、「General Configuration」タブをクリックします。図 2–1 に「General Configuration」タブを示します。
次のパラメータを指定できます。
Sequence Nr。キューのシーケンス番号です。
Processors。そのキューで実行中のジョブにより使用するよう設定された、プロセッサの指示子です。一部のオペレーティングシステムアーキテクチャーに関しては、この指示子は、1 から 4、8、10 などの範囲を取ることも、プロセッサセットの整数の識別子のみを取ることもできます。詳細については、使用中の N1 Grid Engine 6.1 ソフトウェア配布の doc ディレクトリにある arc_depend_*.asc ファイルを参照してください。
この値は、確実に必要な場合以外は変更しないでください。
tmp Directory。一時ディレクトリのパスです。
Shell。ジョブスクリプトを実行するために使用する、デフォルトのコマンドインタプリタです。
Shell Start Mode。ジョブスクリプトを開始するモードです。
Initial State。新しく追加されたキューの状態です。また、キューインスタンスホスト上で実行中の sge_execd が再起動した場合に、キューインスタンスが復旧する状態を示すこともあります。
Rerun Jobs。システムクラッシュなどにより異常終了したジョブに対して強制される、キューのデフォルトのリターンポリシーです。ユーザーは qsub -r コマンドまたは「Submit Job」ダイアログボックスを使用することで、このポリシーを無効にできます。『Sun N1 Grid Engine 6.1 ユーザーズガイド』の「拡張ジョブの例」を参照してください。
Calendar。キューに関連付けられたカレンダです。このカレンダは、キューの on-duty および off-duty 時間を定義します。
Notify Time。SIGUSR1/SIGUSR2 通知シグナルを送信してから一時停止または 終了シグナルを送信するまでの待ち時間です。
Job's Nice。このキューでジョブを開始するのに使用する nice 値です。0 は、システムデフォルトを使用することを意味します。
Slots。キューでの並行実行が可能なジョブの数です。スロットは、ジョブスロットとも呼ばれます。
型。キューおよびこのキューで実行可能なジョブの種類です。種類は Batch、Interactive のいずれか、または両方を取ることができます。
これらのパラメータの詳細については、queue_conf(5) のマニュアルページを参照してください。
実行方法パラメータを構成するには、「Execution Method」タブをクリックします。次の図に「Execution Method」タブを示します。
次のパラメータを指定できます。
Prolog。キュー固有のプロローグスクリプトです。プロローグスクリプトは、ジョブスクリプトが起動される前のジョブと同じ環境で実行されます。
Epilog。キュー固有のエピローグスクリプトです。エピローグスクリプトは、ジョブが完了したあとのジョブと同じ環境で実行されます。
Starter Method、Suspend Method、Resume Method、Terminate Method。これらのフィールドを使用してデフォルトの方法を無効にし、これらのアクションをジョブに適用します。
これらのパラメータの詳細については、queue_conf(5) のマニュアルページを参照してください。
チェックポイント設定パラメータを構成するには、「Checkpointing」タブをクリックします。次の図に「Checkpointing」タブを示します。
次のパラメータを指定できます。
MinCpuTime。定期的なチェックポイントの間隔です。
Referenced Ckpt Objects。キューと関連付けられたチェックポイント設定環境のリストです。
キューからチェックポイント設定環境を参照するには、「Available」リストからチェックポイント設定環境の名前を選択し、右矢印をクリックしてそれを「Referenced」リストに追加します。
「Referenced」リストからチェックポイント設定環境を削除するには、それを選択してから左矢印をクリックします。
チェックポイント設定環境を追加または変更するには、赤い矢印の下にあるボタンをクリックして、「Checkpointing Configuration」ダイアログボックスを開きます。詳細については、「QMON を使用したチェックポイント設定環境の構築」を参照してください。
これらのパラメータの詳細については、queue_conf(5) のマニュアルページを参照してください。
並列環境を構成するには、「Parallel Environment」タブをクリックします。次の図に「Parallel Environment」タブを示します。
次のパラメータを指定できます。
Referenced PE。キューと関連付けられた並列環境のリストです。
キューから並列環境を参照するには、「Available PEs」リストから並列環境の名前を選択し、右矢印をクリックしてそれを「Referenced PEs」リストに追加します。
「Referenced PEs」リストからチェックポイント環境を削除するには、それを選択してから左矢印をクリックします。
並列環境を追加または変更するには、赤い矢印の下にあるボタンをクリックして、「Parallel Environment Configuration」ダイアログボックスを開きます。詳細については、「QMON を使用した並列環境の構成」を参照してください。
このパラメータの詳細については、queue_conf(5) のマニュアルページを参照してください。
負荷および一時停止しきい値を構成するには、「Load/Suspend Thresholds」タブをクリックします。次の図に「Load/Suspend Thresholds」タブを示します。
次のパラメータを指定できます。
負荷パラメータの過負荷しきい値、および消費可能リソース属性を定義する、「Load Thresholds」および「Suspend Thresholds」テーブルです。「コンプレックスリソース属性」を参照してください。
負荷しきい値に達した場合は、過負荷により、キューがさらにジョブを受け取ることはありません。一時停止しきい値に達した場合は、負荷を軽減するため、過負荷によりキューのジョブが一時停止されます。
テーブルには、現在構成されているしきい値が表示されます。
既存のしきい値を変更するには、それを選択してから、対応する「Value」フィールドをダブルクリックします。
新しいしきい値を追加するには、「Load」または「Value」をクリックします。キューに関連付けられているすべての有効な属性とともに、選択リストが表示されます。図 1–2 に「Attribute Selection」ダイアログボックスを示します。対応するしきい値テーブルの「Load」カラムに属性を追加するには、属性を選択してから「OK」をクリックします。
既存のしきい値を削除するには、それを選択してから Control + D キーを押すか、マウスボタン 3 をクリックします。選択項目の削除を確認するプロンプトが表示されます。
Suspend interval。依然として一時停止しきい値を上回っている場合の、そのほかのジョブの、一時停止の間の時間間隔。
Jobs suspended per interval。構成したキューをホスティングしているシステム上の負荷を軽減するために、時間間隔ごとに一時停止するジョブの数です。
これらのパラメータの詳細については、queue_conf(5) のマニュアルページを参照してください。
制限のパラメータを構成するには、「Limits」タブをクリックします。次の図に「Limits」 タブを示します。
次のパラメータを指定できます。
Hard Limit および Soft Limit。キューで実行中のジョブに対して課す強い制限値および弱い制限値です。
制限値を変更するには、値を変更するフィールドの右側にあるボタンをクリックします。Memory または Time 制限値のいずれかを入力できるダイアログボックスが表示されます。
制限パラメータと、さまざまなオペレーティングシステムアーキテクチャーにおけるそれらの解釈の詳細については、queue_conf(5) および setrlimit(2) のマニュアルページを参照してください。
リソース属性を構成するには、「Complex」タブをクリックします。次の図に「Complex」 タブを示します。
次のパラメータを指定できます。
Consumables/Fixed Attributes。このキューに使用可能なリソース属性のセットから選択された属性の値の定義。
使用可能なリソース属性は、デフォルトでコンプレックスからアセンブルされます。
リソース属性は、消費可能または固定のいずれかです。消費可能な値の定義は、キューにより管理される容量を定義します。固定値の定義は、キュー固有の値を定義します。詳細については、「コンプレックスリソース属性」を参照してください。
値が明示的に定義されている対象の属性は、「Consumable/Fixed Attributes」テーブルに表示されます。属性を変更するには、それを選択してから、対応する「Value」フィールドをダブルクリックします。
新しい属性の定義を追加するには、「Load」または「Value」をクリックします。キューに関連付けられているすべての有効な属性のリストとともに、「Attribute Selection」ダイアログボックスが表示されます。図 1–2 に「Attribute Selection」ダイアログボックスを示します。
属性テーブルの「Load」カラムに属性を追加するには、それを選択してから「OK」をクリックします。
属性を削除するには、属性を選択してから Control + D キーを押すか、マウスボタン 3 をクリックします。その属性を削除することを確認するプロンプトが表示されます。
これらの属性の詳細については、queue_conf(5) のマニュアルページを参照してください。
ユーザー定義リソース属性をキューに関連付ける前、またはキューからユーザー定義リソース属性を切り離す前には、「Complex Configuration」ダイアログボックスを使用して、現在のコンプレックス構成を確認または変更します。「Complex Configuration」ダイアログボックスにアクセスするには、「QMON Main Control」ウィンドウの「Complex Configuration」ボタンをクリックします。例は、図 3–1 を参照してください。
従属キューを構成するには、「Subordinates」タブをクリックします。次の図に「Subordinates」 タブを示します。
従属キューの機能を使用して、高優先順位および低優先順位のキューだけでなく、スタンドアロンキューを実装します。
次のパラメータを指定できます。
Queue。構成したキューに対して従属しているキューのリストです。
構成したキューがビシーになった場合、従属キューは一時停止されます。構成したキューがビシーでなくなれば、従属キューは再開されます。
Max Slots。すべての従属キューに関して、一時停止をトリガーするために、構成したキューで満たされなければならないジョブスロットの数を構成できます。最大スロット値が指定されている場合、対応するキューの一時停止をトリガーするためには、すべてのジョブスロットが満たされていなければなりません。
これらのパラメータの詳細については、queue_conf(5) のマニュアルページを参照してください。
ユーザーアクセスパラメータを構成するには、「User Access」タブをクリックします。次の図に「User Access」 タブを示します。
次のパラメータを指定できます。
Available Access Lists。キューの「Allow Access」リストまたは「Deny Access」リストに追加できるユーザーアクセスリストです。
「Allow Access」リストに含まれるアクセスリストに属するユーザーまたはユーザーグループは、キューへのアクセス権があります。「Deny Access」リストに含まれるユーザーは、キューにアクセスできません。「Allow Access」リストが空である場合、「Deny Access」リストで明示的に指定してある場合を除き、アクセスは無制限になります。
ユーザーアクセスリストを追加または変更するには、「Available Access Lists」と「Allow Access」および「Deny Access」リストの間にあるボタンをクリックして、 「User Configuration」ダイアログボックスを開きます。詳細については、「QMON を使用したユーザーアクセスリストの構成」を参照してください。
これらのパラメータの詳細については、queue_conf(5) のマニュアルページを参照してください。
プロジェクトアクセスパラメータを構成するには、「Project Access」タブをクリックします。次の図に「Project Access」 タブを示します。
次のパラメータを指定できます。
Available Projects。キューへのアクセスが許可または拒否されているプロジェクトです。
許可されたプロジェクトのリストに属するプロジェクトに発行されたジョブは、キューへのアクセス権があります。拒否されたプロジェクトに発行されたジョブは、キューに振り分けられません。
プロジェクトアクセス権を追加または変更するには、「Available Projects」リストと「Allow Project Access」および「Deny Project Access」リストの間にあるボタンをクリックして、 「Project Configuration」ダイアログボックスを開きます。詳細については、「QMON を使用したプロジェクトの定義」を参照してください。
これらのパラメータの詳細については、queue_conf(5) のマニュアルページを参照してください。
所有者パラメータを構成するには、「Owners」タブをクリックします。次の図に「Owners」 タブを示します。
次のパラメータを指定できます。
Owner List。キューの所有者のリストです。
一般的に、必要な場合にジョブの一時停止または使用不可をユーザーに許可するため、ユーザーはある種のキューインスタンスの所有者に設定されています。たとえば、重要な作業のためにある種のマシンがユーザーに必要になり、またこれらのマシンが、バックグラウンドで実行中のジョブにより大きな影響を受ける場合があります。
キューの所有者は次の操作を実行できます。
キューの一時停止中に明示的に一時停止されているジョブは、キューが再開された場合も再開されません。明示的に一時停止されたジョブは、明示的に再開する必要があります。
すべての使用可能なユーザーアカウントは、所有者リストに追加できます。キュー所有者のリストからユーザーアカウントを削除するには、ユーザーアカウントを選択してからゴミ箱のアイコンをクリックします。
これらのパラメータの詳細については、queue_conf(5) のマニュアルページを参照してください。
コマンド行からキューを構成するには、適切なオプションを使用して次のコマンドを入力します。
# qconf オプション |
qconf コマンドには次のオプションがあります。
-aq オプション (クラスタキューの追加) を使用すると、クラスタキュー構成用のテンプレートを含むエディタが表示されます。このエディタは、デフォルトの vi エディタか、EDITOR 環境変数により定義されたエディタのいずれかです。cluster-queue が指定されている場合、このクラスタキューの構成がテンプレートとして使用されます。クラスタキューを構成するには、テンプレートを変更してからそれを保存します。変更すべきテンプレートのエントリの詳細な説明については、queue_conf(5) のマニュアルページを参照してください。
-Aq オプション (ファイルからのクラスタキューの追加) を使用すると、ファイル filename を使用してクラスタキューを定義します。定義ファイルは、qconf -sq queue コマンドによって作成されたものである場合があります。
-cq オプション (キューのクリーニング) を使用すると、指定したクラスタキュー、キュードメイン、またはキューインスタンスの状態がクリーニングされ、アイドル状態になり、実行中のジョブから解放されます。状態は、現在の状態に関係なくリセットされます。このオプションはエラー状態を解除するときに便利ですが、通常の運用モードでは使用しないでください。
-dq オプション (クラスタキューの削除) を使用すると、使用可能なキューのリストから、引数リストで指定されているクラスタキューが削除されます。
-mq オプション (クラスタキューの変更) を使用すると、指定したクラスタキューが変更されます。-mq オプションを使用すると、変更すべきクラスタキューの構成を含むエディタが表示されます。このエディタは、デフォルトの vi エディタか、EDITOR 環境変数により定義されたエディタのいずれかです。クラスタキューを変更するには、構成を変更してから変更を保存します。
-Mq オプション (ファイルからのクラスタキューの変更) を使用すると、ファイル filename を使用して、変更したクラスタキュー構成を定義します。定義ファイルは、qconf -sq queue コマンドとそのあとの変更によって作成されたものである場合があります。
引数なしで -sq オプション (キューの表示) を使用すると、デフォルトのテンプレートクラスタキュー、キュードメイン、またはキューインスタンス構成が表示されます。引数付きで -sq オプションを使用すると、指定したキューの現在の構成が表示されます。
-sql オプション (クラスタキューリストの表示) を使用すると、現在構成されているすべてのクラスタキューのリストが表示されます。
qconf コマンドには次のオプションのセットがあり、これらを使用すると特定のキュー属性を変更できます。
-aattr – 属性の追加 |
-Aattr – ファイルからの属性の追加 |
-dattr – 属性の削除 |
-Dattr – ファイルに表示されている属性の削除 |
-mattr – 属性の変更 |
-Mattr – ファイルからの属性の変更 |
-rattr – 属性の置換 |
-Rattr – ファイルからの属性の置換 |
-sobjl – 構成オブジェクトのリストの表示 |
これらのオプションの使用法の説明と、その使用例については、「ファイルを使用した、キュー、ホスト、および環境の変更」を参照してください。これらのオプションの詳細については、qconf(1) のマニュアルページを参照してください。