Sun N1 Grid Engine 6.1 ユーザーズガイド

ジョブの監視と制御

発行したジョブは、次の 3 つの方法で監視および制御することができます。

これらの各方法については、次の節で説明します。

QMON を使用したジョブの監視と制御

QMON Job Control」ダイアログボックスを使用して、ジョブを制御できます。

発行したジョブの監視と制御を行うには、「QMON Main Control」ウィンドウで「Job Control」ボタンをクリックします。「Job Control」ダイアログボックスが表示されます。

「Job Control」ダイアログボックスには 、実行中のジョブのタブ (「Running Jobs,」)、適切なリソースへ振り分けられるのを待っている保留ジョブのタブ (「Pending Jobs」)、および最近終了したジョブのタブ (「Finished Jobs」) の 3 つのタブがあります。

「Submit」ボタンは、「Submit Job」ダイアログボックスへのリンクを提供します。

「Job Control」ダイアログボックスを使用すると、システムが認識している実行中のジョブ、保留中のジョブおよび終了ジョブをすべて監視できます。また、このダイアログボックスはジョブの管理にも使用できます。ジョブの優先順位を変更することができ、ジョブの一時停止、再開、および取り消しも実行できます。

デフォルト形式の「Job Control」ダイアログボックスでは、実行中および保留中の各ジョブに対して次の列が表示されます。

形式をカスタマイズすると、デフォルトの表示を変更できます。詳細は、「「Job Control」ディスプレイのカスタマイズ」を参照してください。

「Job Control」ディスプレイの再表示

表示される情報を最新の状態に保つため、QMON はポーリング方式でジョブのステータスを sge_qmaster から取り出します。「Job Control」ディスプレイの再表示を強制的に行うには、「Refresh」をクリックしてください。

ジョブの選択

ジョブは、次のマウス操作やキーの組み合わせで選択できます。

フィルタを使用して、表示するジョブを選択することもできます。詳細は、「ジョブリストのフィルタリング」を参照してください。

ジョブの管理

ダイアログボックスの右側のボタンを使用して、選択したジョブを次のように管理できます。

ジョブの所有者または Grid Engine 管理者およびオペレータだけが、ジョブの一時停止、再開、削除、待機、およびジョブの優先順位の変更とジョブの変更を実行できます。「管理者、オペレータ、および所有者」を参照してください。一時停止または再開できるのは実行中のジョブだけです。再スケジューリングしたり、待機させたり、優先順位やその他の属性を変更できるのは、保留中のジョブだけです。

ジョブを一時停止すると、UNIX の killコマンドによってジョブの処理グループに SIGSTOP 信号が送信されます。SIGSTOP はジョブを停止し、CPU 時間を消費しなくなります。ジョブを再開すると、 SIGCONT 信号が送信され、これによってジョブの一時停止が解除されます。信号処理プロセスについては、お使いのシステムの kill(1) のマニュアルページを参照してください。


注 –

ジョブの一時停止、再開、および削除は、強制的に実行できます。言い換えれば、そのジョブを制御する sge_execd に通知せずに、sge_qmaster を使用して、これらの処理を登録できます。強制実行は、たとえばネットワーク問題が原因で対応する sge_execd を実行できない場合に有効です。この操作を行うには、「Force」オプションを選択してください。


現在実行中のジョブを再スケジューリングするには、「Reschedule」をクリックします。

ジョブの待機

ジョブを待機させるには、保留中のジョブを選択し、「Hold」をクリックします。「Set Hold」ダイアログボックスが表示されます。

「Set Hold」ダイアログボックスでは、ユーザー、オペレータおよびシステムを待機させたり、待機状態をリセットしたりすることができます。ユーザーの待機を設定およびリセットできるのは、ジョブの所有者および Grid Engine 管理者とオペレータです。オペレータの待機を設定およびリセットできるのは、管理者とオペレータです。システムの待機を設定およびリセットできるのは、管理者だけです。ジョブになんらかの種類の待機が割り当てられている間は、ジョブを実行することはできません。qalterqhold、および qrls コマンドを使用して、待機を設定したり解除したりすることもできます。

配列ジョブのタスクの待機

「Set Hold」ダイアログボックスの「Tasks」フィールドは、配列ジョブに適用されます。配列ジョブの特定のサブタスクを待機状態にするには、このボタンを使用します。「Tasks」フィールドのテキスト書式に注意してください。このフィールドで指定するタスク ID 範囲は、数字 1 つの場合、n-m という書式の単純な範囲の場合、または指定された間隔で数字を使用する範囲の場合があります。たとえば、2-10:2 と指定されたタスク ID 範囲には、タスク ID インデックス 2、4、6、8 および 10 が含まれます。この範囲は 5 つの同質のタスクの合計を表し、環境変数 SGE_TASK_ID には 5 つのインデックス番号のいずれかが含まれます。ジョブの待機の詳細は、 qsub(1) のマニュアルページを参照してください。

ジョブの優先順位の変更

「Job Control」ダイアログボックスの「Priority」をクリックすると、次のダイアログボックスが表示されます。

このダイアログボックスでは、選択した保留中または実行中のジョブの新しい優先順位を入力できます。優先順位は、1 人のユーザーのジョブ間でのジョブの順番です。優先順位によって、同時に複数のジョブがシステム内に存在する場合に、どのようにして 1 人のユーザーのジョブから選択を行うかがスケジューラに伝えられます。

保留中のジョブを選択して「Qalter」をクリックすると、「Submit Job」ウィンドウが表示されます。ダイアログボックスのすべてのエントリは、ジョブの発行時に定義されたジョブの属性に従って設定されます。変更できないエントリはグレー表示されます。その他のエントリは編集できます。変更は、「Submit Job」ダイアログボックスの「Qalter」をクリックすると、Grid Engine システムに登録されます。「Qalter」ボタンは 「Submit」ボタンの代わりとして使用できます。

ジョブの一貫性の確認

「Submit Job」ダイアログボックスの「Verify」フラグは、Qalter モードで使用される場合、特別な意味を持ちます。保留中のジョブの一貫性をチェックしたり、ジョブがスケジューリングされていない理由を調べることができます。「Verify」フラグに対して設定する一貫性チェックモードを選択したあと、「Qalter」をクリックしてください。選択したチェックモードによって、一貫性のない場合は警告が表示されます。詳細は、QMON による高度なジョブの発行」および qalter(1) のマニュアルページの -w オプションを参照してください。

「Why?」ボタンを使用した保留中のジョブ情報の取得

ジョブが保留中である理由をチェックするもう 1 つの方法は、ジョブを選択して「Job Control」ダイアログボックスの「Why?」をクリックすることです。これにより、「Object Browser」ダイアログボックスが開きます。このダイアログボックスには、スケジューラが最新のパス内のジョブの割り振りを行わない理由のリストが表示されます。このようなメッセージが表示された「Browser」ウィンドウの例を次の図に示します。

「Why?」 ボタンが意味のある出力を行うのは、スケジューラ構成パラメータ schedd_job_infotrue に設定されている場合だけです。sched_conf(5) のマニュアルページを参照してください。表示されたスケジューラ情報は、最後のスケジューリング間隔に関するものです。この情報は、ジョブがスケジューリングされなかった理由を調べるまで正しくない可能性があります。

エラー状態のクリア

ジョブに依存する問題が原因で失敗した保留中のジョブのエラー状態を削除するには、「Clear Error」をクリックします。たとえば、ジョブが指定されたジョブ出力ファイルへの十分な書き込み権を持ってない場合などにエラーが発生します。

エラー状態は、保留中のジョブリスト内に赤いフォントで表示されます。ジョブは、たとえば qalter などでエラー状態を修正したあとに削除してください。ジョブの中止時には電子メールを送信するようにジョブが要求している場合、前記のようなエラー状態は電子メールで自動的に報告されます。たとえば、qsub -m a コマンドなどでジョブが中止されている場合があります。

「Job Control」ディスプレイのカスタマイズ

デフォルトの「Job Control」ディスプレイをカスタマイズするには、「Customize」をクリックします。「Job Customize」ダイアログボックスが表示されます。「Select Job Fields」タブをクリックします。次の図は、「Select Job Fields」タブの表示例です。

「Job Customize」ダイアログボックスを使用して、表示する情報を設定します。

「Job Customize」ダイアログボックスでは、ジョブオブジェクトのエントリをより多く選択して、表示できます。また、必要なジョブのフィルタリングも可能です。上の図の例では、「Projects」、「Tickets」、および「Submit Time」という追加フィールドが選択されています。

次の図には、「Finished Jobs」リストにカスタマイズが適用されたあとの拡張された外観を表示しています。

カスタマイズ設定を .qmon_preferences ファイルに保存するには、「Customize Job」ダイアログボックスの「Save」ボタンを使用します。このファイルはユーザーのホームディレクトリに保存されています。カスタマイズ設定を保存すると、「Job Control」ダイアログボックスの見た目が再定義されます。

ジョブリストのフィルタリング

次の例のフィルタリング機能では、アーキテクチャー solaris64 での実行に適した aa114085 が所有するジョブだけを選択します。

「Job Control」ダイアログボックスの「Running Jobs」タブのフィルタリング結果を次の図に示します。

上の図の「Job Control」ダイアログボックスは、QMON によって配列ジョブがどのように表示されるかの例でもあります。

QMON の Object Browser によるジョブの追加情報の取得

QMON を使用したジョブの監視と制御」 に説明されているとおり、QMON Object Browser を使用すると、「Job Control」ダイアログボックスをカスタマイズせずに、ジョブの追加情報をすばやく取り出すことができます。

ジョブに関する情報を表示する Object Browser は、次の 2 つの方法で開けます。

次の「Browser」ウィンドウに、表示されるジョブ情報の例を示します。

コマンド行からのジョブの監視と制御

この節では、コマンド qstat qdel、および qmod によるコマンド行からのジョブの監視、削除、および変更方法について説明します。

qstat によるジョブの監視

ジョブを監視するには、次の節で詳述されている情報を参考に、次のコマンドのいずれかを入力します。


qstat
qstat -f
qstat -ext

オプションのない qstat では、発行したジョブだけの概要が提供されます。qstat -f では、さらに現在構成されているキューに関する情報も含まれます。qstat -ext を指定すると、ジョブの使用率の最新情報やジョブに割り当てられたチケットなどの詳細も含まれます。

最初の書式では、ヘッダ行が列の意味を示します。ほとんどの列の目的は、それ自体で説明できなければなりません。ただし、「state」列には次の意味の 1 文字のコードが含まれます。実行中は r、一時停止は s 、キュー内は q、待機は w で表されます。qstat の出力形式の詳細は、qstat(1) のマニュアルページを参照してください。

2 番目の書式は 2 つのセクションに分けられます。1 番目のセクションは、すべての使用可能なキューのステータスを表示します。PENDING JOBS というタイトルの 2 番目のセクションは、 sge_qmaster ジョブスプール空間のステータスを表示します。キューセクションの 1 行目では、リストされているキューに対する列の意味が定義されています。キューは水平線で区切られています。キュー内でジョブが実行される場合、1 番目の書式の qstat コマンドと同じ書式で、関連するキューの下にそのジョブ名が表示されます。2 番目の出力セクションの保留中のジョブは、qstat の 1 番目の書式と同じように表示されます。

キュー説明の列は、次の情報を提供します。

qstat(1) のマニュアルページにはqstat の出力形式の詳しい説明が記載されています。

3 番目の形式では、使用率およびジョブに割り当てられたチケットの値が次の列に表示されます。

さらに、期限の開始時が適宜「deadline」列に表示されます。「share」列には、クラスタ内のすべてのジョブによって発生する使用量を基準にした各ジョブの現在のリソース配分が示されます。詳細は、qstat(1) のマニュアルページを参照してください。

qstat コマンドのさまざまな追加オプションは、機能性を拡張します。発行したジョブのリソース要件を表示するには、-r オプションを使用します。さらに、出力を特定のユーザーまたはキューに限定することもできます。「リソース要件の定義」で説明されているとおり、-l オプションを使用して qsub コマンドのリソース要件を指定できます。リソース要件を使用すると、qstat によって指定されたリソース要件に一致するキューおよびそれらのキューで実行されているジョブだけが表示されます。


注 –

qstat コマンドは、管理者およびユーザーが有用なオプションを含めたファイルを定義できるように拡張されました。sge_qstat(5) のマニュアルページを参照してください。クラスタ全体の sge_qstat ファイルは、 $xxQS_NAME_Sxx_ROOT/$xxQS_NAME_Sxx_CELL/common/sge_qstat に置くことができます。ユーザー専用のファイルは、$HOME/.sge_qstat で処理されます。ホームディレクトリ要求ファイルの優先順位がもっとも高く、次がクラスタグローバルファイルです。コマンド行を使用すると、ファイルに指定したフラグよりも優先されます。


例 4–1例 4–2 に、qstatqstat -f コマンドの出力例を示します。


例 4–1 qstat -f の出力例


queuename                  qtype  used/free   load_avg   arch         states     

dq                         BIP    0/1         99.99      sun4         au     

durin.q                    BIP    2/2         0.36       sun4          
  231     0    hydra              craig       r          07/13/96     20:27:15    MASTER
  232     0    compile            penny       r          07/13/96     20:30:40    MASTER

dwain.q                    BIP    3/3         0.36       sun4          
  230     0    blackhole          don         r          07/13/96     20:26:10    MASTER
  233     0    mac                elaine      r          07/13/96     20:30:40    MASTER
  234     0    golf               shannon     r          07/13/96     20:31:44    MASTER

fq                         BIP    0/3         0.36       sun4          

################################################################################

- PENDING JOBS - PENDING JOBS - PENDING JOBS - PENDING JOBS - PENDING JOBS -

################################################################################

  236     5    word               elaine      qw         07/13/96     20:32:07

  235     0    andrun             penny       qw         07/13/96     20:31:43


例 4–2 qstat の出力例


job-ID   prior   name         user      state   submit/start at     queue      function
231      0       hydra        craig     r       07/13/96            durin.q    MASTER 
                                                20:27:15
232      0       compile      penny     r       07/13/96            durin.q    MASTER 
                                                20:30:40
230      0       blackhole    don       r       07/13/96            dwain.q    MASTER 
                                                20:26:10
233      0       mac          elaine    r       07/13/96            dwain.q    MASTER 
                                                20:30:40
234      0       golf         shannon   r       07/13/96            dwain.q    MASTER 
                                                20:31:44
236      5       word         elaine    qw      07/13/96           
                                                20:32:07
235      0       andrun       penny     qw      07/13/96 20:31:43 

qdel および qmod によるジョブの制御

コマンド行からジョブを制御するには、次のいずれかのコマンドに適切な引数を指定して実行します。


% qdel arguments
% qmod arguments

ジョブが実行中なのかスプール状態なのかに関わらず、ジョブを取り消すには qdel コマンドを使用します。すでに実行中のジョブを一時停止および再開 (一時停止を解除) するには、qmod コマンドを使用します。

両方のコマンドでジョブ識別番号が必要です。ジョブ識別番号は、qsub コマンドを正常に実行すると返されます。番号を忘れた場合は、qstat で取り出すことができます。qstat によるジョブの監視」を参照してください。

次のリストに、qdel および qmod コマンドの例をいくつか示します。


% qdel job-id
% qdel -f job-id1, job-id2
% qmod -s job-id
% qmod -us -f job-id1, job-id2
% qmod -s job-id.task-id-range

ジョブを削除、一時停止、または再開するには、ジョブの所有者、Grid Engine 管理者、またはオペレータでなければなりません。「管理者、オペレータ、および所有者」を参照してください。

どちらのコマンドでも、-f (force) オプションを使用すると、sge_execd に影響することなくジョブステータスの変更を sge_qmaster に登録することができます。強制実行オプションは、たとえばネットワーク問題などが原因で sge_execd を実行できない場合などに使用してください。 -f オプションは、管理者だけが使用できます。ただし、 qdel でクラスタ構成 qmaster_params エントリの ENABLE_FORCED_QDEL フラグが設定されている場合は、自分自身のジョブは強制削除することができます。詳細は、sge_conf(5) のマニュアルページを参照してください。

電子メールによるジョブの監視

コマンド行から、適切な引数を指定して次のコマンドを入力します。


% qsub arguments

qsub -m コマンドは、特定のイベントが発生するとジョブを発行したユーザーまたは -M フラグで指定されたアドレスに電子メールを送信するように要求します。フラグの説明については、qsub(1) のマニュアルページを参照してください。-m オプションの引数は、イベントを指定します。次の 引数が使用可能です。

-m オプションでこれらのオプションのいくつかを指定するには、1 つ以上の文字引数で構成された文字列を使用してください。たとえば、 -m be と指定すると、電子メールはジョブの開始時と終了時に送信されます。

「Submit Job」ダイアログボックスを使用して、これらのメールイベントを設定することもできます。QMON による高度なジョブの発行」を参照してください。