この章では、グリッドのキューに関する情報を表示する方法について説明します。すべてのキューのパフォーマンスの健全性の全体像を確認し、特定のキューに関する詳細情報を表示できます。
キューの情報は、「キューの概要」ページに表示されます。このページを使用して、キューが機能しているかどうか、および効率的に実行されているかどうかを確認します。このページから、任意のキューに関する詳細情報を表示することもできます。
N1GE 環境では、キューとは、ジョブの実行環境を定義する手段です。このコンテキストには、次のような機能が含まれます。
ジョブの実行時の制限 (メモリー、スタック、および CPU 時間)
制御アクションメソッド (ジョブの一時停止と再開の方法)
仮想ジョブコンテナ (Solaris、Linux、または MS–Windows の資源プール)
キューインスタンスとは、単一のホストに存在するキューの一部です。
このタブでは、キューインスタンスの表に情報が表示されます。キューインスタンスとは、特定のホストに存在するキューの一部です。グリッド内にあるすべてのキューインスタンスが表示されます。
「キューの概要」ページには、次の情報が表示されます。
キュー – キュー名です。キューに関する詳細情報を表示するには、キューインスタンス名をクリックします。
ステータス – このキューインスタンスが実行中であるか、手動で一時停止されているか、またはエラーが原因で自動的に一時停止しているか、あるいは必要なリソースが使用可能になるか条件を満たすまで待機中であるかを示します。キューインスタンスが一時停止中または待機中の場合は、キューの詳細を確認できます。
使用済みスロット数 – このキューインスタンスが使用している合計スロット数です。
総スロット数 – このキューインスタンスに定義されているスロット数です。スロットは、キューで同時に実行できるジョブの最大数です。
ジョブの優先順位は、N1GE のキューを使用して設定するのではありません。優先順位は、Sun N1 Grid Engine ソフトウェアの拡張ポリシーシステムを使用して定義します。ジョブの優先順位については、sge_priority(5) のマニュアルページ、および『Scheduler Policies for Job Prioritization in the Sun N1 Grid Engine 6 System』(www.sun.com/blueprints/1005/819-4325.html) を参照してください。
クラスタキューについては、『N1 Grid Engine 6 ユーザーズガイド』の「キューの監視と制御」と qmon のマニュアルページを参照してください。キューの状態については、「キューのアラート」ページを参照してください。
「キューの詳細」ページには、「キューの概要」ページで選択したキューインスタンスに関する詳細情報が表示されます。
「キューの詳細」ページには、次の情報が表示されます。
キュー – キューのインスタンス名です。
ステータス – このキューインスタンスが実行中であるか、手動で一時停止されているか、またはエラーが原因で自動的に一時停止しているか、あるいは必要なリソースが使用可能になるか条件を満たすまで待機中であるかを示します。詳細は、「キューのアラート」ページを参照してください。
使用済みスロット数 – キューインスタンスで同時に実行されている数です。型は数値です。
総スロット数 – キューインスタンスで同時に実行できるジョブの最大数です。型は数値です。
キューのタイプ – キューのタイプです。現在は、バッチ、対話型、並列処理、チェックポイント設定のいずれかか、コンマで区切ったその任意の組み合わせです。型は文字列です。デフォルト値はバッチ、対話型、並列処理です。
ホスト名 – ノードの完全指定のホスト名です (文字列型、テンプレートデフォルト: host.dom.dom.dom)。
カレンダ – このキューインスタンスの有効なカレンダを示すか、NONE (デフォルト) と表示されます。カレンダは、時刻、週、年によって、キューインスタンスが使用可能かどうかを定義します。N1 Grid Engine のカレンダ機能については、calendar_conf のマニュアルページを参照してください。
シーケンス番号 – シーケンス番号です。このパラメータとホストの負荷状況を組み合わせて、適切なキュースケジュール順序内でのこのキューの位置がわかります。ジョブは、 queue_sort_method を考慮して振り分けられます (sched_conf のマニュアルページを参照)。queue_sort_method の設定に関係なく、qstat では、seq_no の値で定義された順序でキュー情報が表示されます。このパラメータは、単調増加シーケンスに設定します。型は数値でデフォルト値は 0 です。
再実行 – キューホストで完全な Sun N1 Grid Engine システムのシステムクラッシュまたは手動での強制的なシャットダウン (kill を使用) によって異常終了したジョブのデフォルトの動作を定義します (ジョブの sge_shepherd とそのプロセス階層を含む)。sge_execd デーモンが再起動し、このような理由でジョブが異常終了したことが検出されたとき、ジョブが再起動可能であれば再起動できます。ジョブは再起動可能ではない場合もあります。たとえば、ジョブでデータベースを更新する場合 (データベースまたはファイルのレコードを読み取ってから同じレコードに書き込む場合) は、ジョブが取り消されたことでデータベースの整合性が失われる可能性があります。このパラメータの型はブール型であるため、TRUE または FALSE のいずれかを指定できます。デフォルト値は FALSE で、ジョブが自動的に再起動しません。ジョブの所有者は、qsub コマンドの - r オプションを使用して、キュー内のジョブのデフォルトの動作を無効にできます。
最小 CPU 間隔 – ジョブの透過的なチェックポイント設定を行う場合の 2 つの自動チェックポイント間の時間です。ユーザーが要求した最長時間 (qsub を使用) とキュー構成で定義された時間が、チェックポイント間隔として使用されます。チェックポイントファイルは大きい可能性があり、その場合はファイルシステムへの書き込みの負荷が高くなります。したがって、ユーザーおよび管理者は、適度に長い間隔を選択することを推奨します。min_cpu_interval は時間型です。デフォルト値は 5 分で、テスト用にのみ適切な値です。
s_rt (ソフトリアルタイム) と h_rt (ハードリアルタイム) の各リソース制限パラメータは、ジョブ開始後の実際の時間を定義します (経過時間または時計時間ともいう)。キュー内で実行中のジョブが h_rt を超えると、ジョブは SIGKILL 信号を使用して停止されます (kill コマンドを参照)。s_rt を超えると、ジョブはまず SIGUSR1 信号で警告されます。ジョブは、この信号を受け取り、キュー構成の notify パラメータで定義された通知時間の経過後に最終的に停止できます。
s_cpu (ソフト CPU) と h_cpu (ハード CPU — ジョブあたりの秒単位の CPU 時間制限) の各リソース制限パラメータは、ジョブ内のすべてのプロセスで使用される合計 CPU 時間の制限になります。キュー内で実行中のジョブが h_cpu を超えると、ジョブは SIGKILL 信号を使用して停止されます (kill コマンドを参照)。s_cpu を超えると、ジョブに SIGXCPU 信号が送信されます。ジョブはこの信号を受け取ることができます。ジョブが強制終了する前に正常終了できるように警告するには、s_cpu 制限を h_cpu よりも小さい値に設定します。並列処理では、制限はスロットごとに適用されます。制限は、ジョブで使用されているスロット数で乗算してから適用されます。
s_vmem (ソフト仮想メモリー) – s_data と同じです。両方設定されている場合は最小値が使用されます。また、h_vmem (ハード仮想メモリー) は、 h_data と同じです。両方設定されている場合は最小値が使用されます。これらのリソース制限パラメータは、ジョブ内のすべてのプロセスで使用される仮想メモリーの合計容量の制限になります。キュー内で実行中のジョブが h_vmem を超えると、ジョブは SIGKILL 信号で停止されます。s_vmem を超えると、ジョブに SIGXCPU 信号が送信されます。ジョブはこの信号を受け取ることができます。ジョブが強制終了する前に正常終了できるように警告するには、s_vmem 制限を h_vmem よりも小さい値に設定します。並列処理では、制限はスロットごとに適用されます。制限は、ジョブで使用されているスロット数で乗算してから適用されます。
s_core (ソフトコア) - プロセスあたりのコアファイルの最大サイズ (バイト単位) です。
s_data (ソフトデータ) – プロセスあたりの最大メモリー制限 (バイト単位) です。
h_data (ハードデータ) – ジョブあたりの最大メモリー制限 (バイト単位) です。
h_fsize (ハードファイルサイズ) – このジョブが作成できるディスクブロックの合計数です。
これらのパラメータは、setrlimit(2) システム呼び出しで実装される、ジョブあたりのソフトとハードのリソース制限を指定します。デフォルトでは、各制限フィールドが無限大 (setrlimit のマニュアルページで説明している RLIM_INFINITY) に設定されます。CPU 時間の制限 s_cpu と h_cpu の値の型は時間です。ほかの制限の値の型はメモリーです。
setrlimit コマンドがサポートされないシステムもあります。また、s_vmem および h_vmem は、RLIMIT_VMEM をサポートするシステムだけで使用可能です (キューのホストシステムで setrlimit(2) のマニュアルページを参照)。
詳細は、complex のマニュアルページを参照してください。