Grid Engine ソフトウェアは、メッセージを特定のファイルに記録したり、電子メールを送信したり、またはこの両方を行って、エラーと警告をレポートします。ログファイルには、メッセージ ファイルとジョブ STDERR 出力が含まれます。
stderr ジョブが開始されると、ジョブ スクリプトの標準エラー (STDERR) 出力の出力先がファイルにリダイレクトされます。デフォルトのファイル名とファイルの保存場所を使用するか、qsub コマンドのオプションを使用してファイル名と場所を指定することができます。詳細は、Grid Engine システムのマニュアルページを参照してください。
sge_qmaster、sge_schedd、および sge_execd には、個別のメッセージファイルがあります。 ファイルの名前は同じで、messages です。sge_qmaster ログファイルは、マスタースプールディレクトリに保存されます。sge_schedd メッセージ ファイルは、スケジューラスプールディレクトリに保存されます。実行デーモンのログファイルの場所は、実行デーモンのスプールディレクトリです。スプールディレクトリについては、『Sun N1 Grid Engine 6.1 インストールガイド』の「ルートディレクトリの下のスプールディレクトリ」を参照してください。
各メッセージは、ファイル内の 1 行を占めます。各メッセージは、縦線記号 (|) で区切られた 5 つのコンポーネントに分割されます。
1 番目のコンポーネントは、メッセージのタイムスタンプです。
2 番目のコンポーネントは、メッセージを生成する Grid Engine システムデーモンを指定します。
3 番目のコンポーネントは、デーモンが動作しているホストの名前です。
4 番目は、メッセージの種類です。メッセージの種類は、次のいずれかです。
通知の N (情報提供が目的)
情報の I (情報提供が目的)
警告の W
エラーの E (エラー状態の検出)
重大の C (プログラムの異常終了になる可能性あり)
クラスタ構成で loglevel パラメータを使用して、グローバルまたはローカルベースで、記録するメッセージの種類を指定してください。
5 番目のコンポーネントは、メッセージのテキストです。
なんらかの理由でエラーログファイルにアクセスできない場合、Grid Engine システムは、対応するホストのファイル /tmp/sge_qmaster_messages、 /tmp/sge_schedd_messages、または /tmp/sge_execd_messages にエラーメッセージを記録しようとします。
場合によって、Grid Engine システムは、ユーザー、管理者、またはその両方に電子メールでエラーイベントを通知します。Grid Engine システムが送信する電子メールメッセージには、メッセージの本文は含まれません。メッセージのテキストは、メールの件名フィールドにすべて含まれます。
次の表に、複数のジョブ関連エラーコードまたは終了コードの意味を示します。これらのコードは、あらゆる種類のジョブに該当します。
表 7–1 ジョブ関連のエラーまたは終了コード
スクリプト/方法 |
終了またはエラーコード |
意味 |
---|---|---|
Job スクリプト |
0 |
成功 |
|
99 |
再度キューに入れる |
|
Rest |
成功。アカウンティングファイルの終了コード |
prolog/epilog |
0 |
成功 |
|
99 |
再度キューに入れる |
|
Rest |
キューエラー状態。ジョブは再度キューに入れられる |
次の表に、並列環境 (PE) 構成に関連するジョブのエラーコードまたは終了コードの意味を示します。
表 7–2 並列環境関連のエラーまたは終了コード
スクリプト/方法 |
終了またはエラーコード |
意味 |
---|---|---|
pe_start |
0 |
成功 |
|
Rest |
キューをエラー状態に設定。ジョブは再度キューに入れられる |
pe_stop |
0 |
成功 |
|
Rest |
キューをエラー状態に設定。ジョブは再度キューには入れられない |
次の表に、キュー構成に関連するジョブのエラーコードまたは終了コードの意味を示します。これらのコードは、対応メソッドが上書きされた場合だけ有効です。
表 7–3 キュー関連のエラーまたは終了コード
スクリプト/方法 |
終了またはエラーコード |
意味 |
---|---|---|
ジョブ開始 |
0 |
成功 |
|
Rest |
成功。ほかの意味は特になし |
一時停止 |
0 |
成功 |
|
Rest |
成功。ほかの意味は特になし |
再開 |
0 |
成功 |
|
Rest |
成功。ほかの意味は特になし |
終了 |
0 |
成功 |
|
Rest |
成功。ほかの意味は特になし |
次の表に、チェックポイント設定に関連するジョブのエラーコードまたは終了コードの意味を示します。
表 7–4 チェックポイント設定関連のエラーまたは終了コード
スクリプト/方法 |
終了またはエラーコード |
意味 |
---|---|---|
チェックポイント |
0 |
成功 |
|
Rest |
成功。ただし、カーネルチェックポイントの場合、チェックポイントが成功しなかったことを意味する。 |
移行 |
0 |
成功 |
|
Rest |
成功。ただし、カーネルチェックポイントの場合、チェックポイントが成功しなかったことを意味する。移行は行われる。 |
再開 |
0 |
成功 |
|
Rest |
成功。ほかの意味は特になし |
後処理 |
0 |
成功 |
|
Rest |
成功。ほかの意味は特になし |
正常に実行されたジョブに対して、qacct -j コマンドからの出力は、「failed」フィールドに「0」を示し、「exit_status」フィールドにジョブの終了ステータスを示します。ただし、シェパードがジョブを正常に実行できない場合があります。たとえば、epilog スクリプトが失敗したり、シェパードがジョブを開始できない場合があります。このような場合、「failed」フィールドは、次の表のコードの値のいずれかを表示します。
表 7–5 qacct -j failed フィールドコード
コード |
説明 |
acctvalid |
ジョブに対する意味 |
---|---|---|---|
0 |
No failure |
t |
ジョブは実行され、正常に終了された |
1 |
Presumably before job |
f |
ジョブを開始できなかった |
3 |
Before writing config |
f |
ジョブを開始できなかった |
4 |
Before writing PID |
f |
ジョブを開始できなかった |
5 |
On reading config file |
f |
ジョブを開始できなかった |
6 |
Setting processor set |
f |
ジョブを開始できなかった |
7 |
Before prolog |
f |
ジョブを開始できなかった |
8 |
In prolog |
f |
ジョブを開始できなかった |
9 |
Before pestart |
f |
ジョブを開始できなかった |
10 |
In pestart |
f |
ジョブを開始できなかった |
11 |
Before job |
f |
ジョブを開始できなかった |
12 |
Before pestop |
t |
ジョブは実行され、PE 停止手続きの呼び出し前に障害が発生した |
13 |
In pestop |
t |
ジョブは実行され、PE 停止手続きで障害が発生した |
14 |
Before epilog |
t |
ジョブは実行され、epilog スクリプトの呼び出し前に障害が発生した |
15 |
In epilog |
t |
ジョブは実行され、epilog 内で障害が発生した |
16 |
Releasing processor set |
t |
ジョブは実行され、プロセッサセットは解放できなかった |
24 |
Migrating (checkpointing jobs) |
t |
ジョブは実行され、移行される予定 |
25 |
Rescheduling |
t |
ジョブは実行され、再スケジューリングされる予定 |
26 |
Opening output file |
f |
ジョブを開始できず、stderr/stdout ファイルを開けない |
27 |
Searching requested shell |
f |
ジョブを開始できず、シェルを検出できない |
28 |
Changing to working directory |
f |
ジョブを開始できず、エラーで開始ディレクトリへ移動した |
100 |
Assumedly after job |
t |
ジョブは実行され、信号によってジョブ終了させられた。 |
「コード」の列には、「failed」フィールドの値が一覧表示されています。「説明」列には、qacct -j の出力で表示されるテキストが一覧表示されています。acctvalid が t に設定されている場合、ジョブアカウンティングの値は有効です。acctvalid が f に設定されている場合、アカウンティングレコードのリソース使用率は有効ではありません。「ジョブに対する意味」の列では、ジョブが実行されたのかどうかが示されています。
重大なエラーが発生した場合に、問題の特定に十分な情報がエラー記録機構によって生成されないことがあります。このため Grid Engine システムは、ほぼすべての補助プログラムとデーモンをデバッグモードで実行する機能が用意されています。デバッグのレベルは、提供される情報の量および深さに応じて異なります。デバッグのレベルは、0 から 10 の範囲で、10 はもっとも詳細な情報を提供するレベル、0 はデバッグ無効です。
デバッグレベルを設定するために、Grid Engine システムの配布には、.cshrc または .profile リソースファイルに対する拡張機能が用意されています。csh または tcsh のユーザーの場合は、ファイル sge-root/util/dl.csh が含まれています。sh または ksh のユーザーの場合は、対応するファイルの名前は sge-root/ util/dl.sh です。標準のリソースファイルに、これらのファイルを取り込む必要があります。csh または tcsh のユーザーの場合は、.cshrc ファイルに次の行を含めます。
source sge-root/util/dl.csh |
sh または ksh のユーザーの場合は、.profile ファイルに次の行を含めます。
. sge-root/util/dl.sh |
いったんログアウトして、ログインし直すと、次のコマンドを使用してデバッグレベルを設定できます。
% dl level |
level が 0 より大きい場合、Grid Engine システムのコマンドを開始すると、トレース出力を STDOUT に書き込むようコマンドに強制します。トレース出力には、警告メッセージ、ステータスメッセージ、エラーメッセージ、および内部的に呼び出されたプログラムモジュールの名前が含まれます。メッセージには、ユーザーが指定するデバッグレベルに応じて、エラーの報告に役立つ行番号情報も含まれます。
デバッグトレースを監視するには、大きなサイズのスクロール行バッファーを持つウィンドウを使用するようにします。たとえば、1000 行のスクロール行バッファーを使用します。
ウィンドウが xterm の場合は、xterm ログ記録機構を使用して、あとでトレース出力を調べることができます。
デバッグモードで Grid Engine システムデーモンの 1 つを実行すると、デーモンが端末接続を維持して、トレース出力を書き出します。こうした端末接続は、使用している端末エミュレーションの割り込み文字を入力することによって打ち切ることができます。たとえば、Control-C などを使用します。
デバッグモードを無効にするには、デバッグレベルを 0 に戻します。
sgedbwriter スクリプトは、dbwriter プログラムを開始します。このスクリプトは、sge_root /dbwriter/bin/sgedbwriter に保存されています。sgedbwriter スクリプトは、dbwriter の構成ファイルである dbwriter.conf を読み取ります。この構成ファイルは、sge_root/cell /common/dbwriter.conf に保存されています。この構成ファイルは、dbwriter のデバッグレベルを設定します。例は次のとおりです。
# # デバッグレベル # 有効な値: WARNING、INFO、CONFIG、FINE、FINER、FINEST、ALL # DBWRITER_DEBUG=INFO |
dbwriter コマンドの –debug オプションを使用すると、dbwriter により作成されるメッセージの数を変更できます。通常は、デフォルトのデバッグレベルである info を使用してください。より詳細なデバッグレベルを使用すると、dbwriter によって出力されるデータの量が大幅に増加します。
次のデバッグレベルを指定できます。
重大なエラーと警告のみが表示されます。
多数の参考メッセージが追加されます。info がデフォルトのデバッグレベルです。
たとえば規則の処理に関する、dbwriter 構成に関連する追加の情報が得られます。
さらに多くの情報が作成されます。このデバッグレベルを選択すると、dbwriter によって実行されるすべての SQL 文が出力されます。
デバッグ用に使用します。
デバッグ用に使用します。
すべてのレベルの情報を表示します。デバッグ用に使用します。