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

ソフトウェアによるエラーレポートの検出方法

Grid Engine ソフトウェアは、メッセージを特定のファイルに記録したり、電子メールを送信したり、またはこの両方を行って、エラーと警告をレポートします。ログファイルには、メッセージ ファイルとジョブ STDERR 出力が含まれます。

stderr ジョブが開始されると、ジョブ スクリプトの標準エラー (STDERR) 出力の出力先がファイルにリダイレクトされます。デフォルトのファイル名とファイルの保存場所を使用するか、qsub コマンドのオプションを使用してファイル名と場所を指定することができます。詳細は、Grid Engine システムのマニュアルページを参照してください。

sge_qmastersge_schedd、および sge_execd には、個別のメッセージファイルがあります。 ファイルの名前は同じで、messages です。sge_qmaster ログファイルは、マスタースプールディレクトリに保存されます。sge_schedd メッセージ ファイルは、スケジューラスプールディレクトリに保存されます。実行デーモンのログファイルの場所は、実行デーモンのスプールディレクトリです。スプールディレクトリについては、『Sun N1 Grid Engine 6.1 インストールガイド』「ルートディレクトリの下のスプールディレクトリ」を参照してください。

各メッセージは、ファイル内の 1 行を占めます。各メッセージは、縦線記号 (|) で区切られた 5 つのコンポーネントに分割されます。

    メッセージのコンポーネントは、次のとおりです。

  1. 1 番目のコンポーネントは、メッセージのタイムスタンプです。

  2. 2 番目のコンポーネントは、メッセージを生成する Grid Engine システムデーモンを指定します。

  3. 3 番目のコンポーネントは、デーモンが動作しているホストの名前です。

  4. 4 番目は、メッセージの種類です。メッセージの種類は、次のいずれかです。

    • 通知の N (情報提供が目的)

    • 情報の I (情報提供が目的)

    • 警告の W

    • エラーの E (エラー状態の検出)

    • 重大の C (プログラムの異常終了になる可能性あり)

    クラスタ構成で loglevel パラメータを使用して、グローバルまたはローカルベースで、記録するメッセージの種類を指定してください。

  5. 5 番目のコンポーネントは、メッセージのテキストです。


    注 –

    なんらかの理由でエラーログファイルにアクセスできない場合、Grid Engine システムは、対応するホストのファイル /tmp/sge_qmaster_messages/tmp/sge_schedd_messages、または /tmp/sge_execd_messages にエラーメッセージを記録しようとします。


場合によって、Grid Engine システムは、ユーザー、管理者、またはその両方に電子メールでエラーイベントを通知します。Grid Engine システムが送信する電子メールメッセージには、メッセージの本文は含まれません。メッセージのテキストは、メールの件名フィールドにすべて含まれます。

異なるエラーコードまたは終了コードの意味

次の表に、複数のジョブ関連エラーコードまたは終了コードの意味を示します。これらのコードは、あらゆる種類のジョブに該当します。

表 7–1 ジョブ関連のエラーまたは終了コード

スクリプト/方法 

終了またはエラーコード 

意味 

Job スクリプト 

成功 

 

99 

再度キューに入れる 

 

Rest 

成功。アカウンティングファイルの終了コード 

prolog/epilog 

成功 

 

99 

再度キューに入れる 

 

Rest 

キューエラー状態。ジョブは再度キューに入れられる 

次の表に、並列環境 (PE) 構成に関連するジョブのエラーコードまたは終了コードの意味を示します。

表 7–2 並列環境関連のエラーまたは終了コード

スクリプト/方法 

終了またはエラーコード 

意味 

pe_start 

成功 

 

Rest 

キューをエラー状態に設定。ジョブは再度キューに入れられる 

pe_stop 

成功 

 

Rest 

キューをエラー状態に設定。ジョブは再度キューには入れられない 

次の表に、キュー構成に関連するジョブのエラーコードまたは終了コードの意味を示します。これらのコードは、対応メソッドが上書きされた場合だけ有効です。

表 7–3 キュー関連のエラーまたは終了コード

スクリプト/方法 

終了またはエラーコード 

意味 

ジョブ開始 

成功 

 

Rest 

成功。ほかの意味は特になし 

一時停止 

成功 

 

Rest 

成功。ほかの意味は特になし 

再開 

成功 

 

Rest 

成功。ほかの意味は特になし 

終了 

成功 

 

Rest 

成功。ほかの意味は特になし 

次の表に、チェックポイント設定に関連するジョブのエラーコードまたは終了コードの意味を示します。

表 7–4 チェックポイント設定関連のエラーまたは終了コード

スクリプト/方法 

終了またはエラーコード 

意味 

チェックポイント 

成功 

 

Rest 

成功。ただし、カーネルチェックポイントの場合、チェックポイントが成功しなかったことを意味する。 

移行 

成功 

 

Rest 

成功。ただし、カーネルチェックポイントの場合、チェックポイントが成功しなかったことを意味する。移行は行われる。 

再開 

成功 

 

Rest 

成功。ほかの意味は特になし 

後処理 

成功 

 

Rest 

成功。ほかの意味は特になし 

正常に実行されたジョブに対して、qacct -j コマンドからの出力は、「failed」フィールドに「0」を示し、「exit_status」フィールドにジョブの終了ステータスを示します。ただし、シェパードがジョブを正常に実行できない場合があります。たとえば、epilog スクリプトが失敗したり、シェパードがジョブを開始できない場合があります。このような場合、「failed」フィールドは、次の表のコードの値のいずれかを表示します。

表 7–5 qacct -j failed フィールドコード

コード 

説明 

acctvalid 

ジョブに対する意味 

No failure 

ジョブは実行され、正常に終了された 

Presumably before job 

ジョブを開始できなかった 

Before writing config 

ジョブを開始できなかった 

Before writing PID 

ジョブを開始できなかった 

On reading config file 

ジョブを開始できなかった 

Setting processor set 

ジョブを開始できなかった 

Before prolog 

ジョブを開始できなかった 

In prolog 

ジョブを開始できなかった 

Before pestart 

ジョブを開始できなかった 

10 

In pestart 

ジョブを開始できなかった 

11 

Before job 

ジョブを開始できなかった 

12 

Before pestop 

ジョブは実行され、PE 停止手続きの呼び出し前に障害が発生した 

13 

In pestop 

ジョブは実行され、PE 停止手続きで障害が発生した 

14 

Before epilog 

ジョブは実行され、epilog スクリプトの呼び出し前に障害が発生した 

15 

In epilog 

ジョブは実行され、epilog 内で障害が発生した 

16 

Releasing processor set 

ジョブは実行され、プロセッサセットは解放できなかった 

24 

Migrating (checkpointing jobs) 

ジョブは実行され、移行される予定 

25

Rescheduling 

ジョブは実行され、再スケジューリングされる予定 

26 

Opening output file 

ジョブを開始できず、stderr/stdout ファイルを開けない 

27 

Searching requested shell 

ジョブを開始できず、シェルを検出できない 

28 

Changing to working directory 

ジョブを開始できず、エラーで開始ディレクトリへ移動した 

100 

Assumedly after job 

ジョブは実行され、信号によってジョブ終了させられた。 

「コード」の列には、「failed」フィールドの値が一覧表示されています。「説明」列には、qacct -j の出力で表示されるテキストが一覧表示されています。acctvalidt に設定されている場合、ジョブアカウンティングの値は有効です。acctvalidf に設定されている場合、アカウンティングレコードのリソース使用率は有効ではありません。「ジョブに対する意味」の列では、ジョブが実行されたのかどうかが示されています。

デバッグモードでの Grid Engine システムのプログラムの実行

重大なエラーが発生した場合に、問題の特定に十分な情報がエラー記録機構によって生成されないことがあります。このため 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 に戻します。

dbwriter デバッグレベルの設定

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 によって出力されるデータの量が大幅に増加します。

次のデバッグレベルを指定できます。

warning

重大なエラーと警告のみが表示されます。

info

多数の参考メッセージが追加されます。info がデフォルトのデバッグレベルです。

config

たとえば規則の処理に関する、dbwriter 構成に関連する追加の情報が得られます。

fine

さらに多くの情報が作成されます。このデバッグレベルを選択すると、dbwriter によって実行されるすべての SQL 文が出力されます。

finer

デバッグ用に使用します。

finest

デバッグ用に使用します。

all

すべてのレベルの情報を表示します。デバッグ用に使用します。