バッチジョブスケジューラに投入後のログに出力される以下のようなメッセージに対する確認方法をご説明します。
/var/spool/uge/hostname/job_scripts/JOB-ID: line XX: Process-ID Killed Program_Name |
qacct コマンドによる確認を行います。
$ qacct -j JOB-ID |
ユーザGSICUSER00がq_nodeに投入したジョブを確認したコマンド結果の例(一部抜粋)
下記項目の詳細についてはmanコマンドで確認下さい。
==============================================================
1.メモリ資源を超過した場合の例
$ qacct -j 4500000 |
この例では、exit_statusとaccountおよびmaxvmemに注目します。
exit_statusを確認することで、何が原因でジョブが停止したかを確認できます。
例のexit_status 137 は128+9を示しますが、これだけだと多岐にわたるため、切り分けはできません。
そこでaccountおよびmaxvmemを確認します。
(2018/12/7修正 :granted_peのみでは資源タイプが不明となったため修正)
accountの「0 0 1 0 0 0」はどの資源タイプをどのくらいの量、利用したかを示します。
スペース区切りでそれぞれf_node,h_node,q_node,s_core,q_core,s_gpuの資源タイプを示し、数字は資源量を示します。この例ではq_nodeを1つ利用しています。
maxvmemは最大メモリ使用量を示します。
資源タイプq_nodeは利用手引きを確認すると60GB利用できますが、例では120GB利用しようとしたことがわかります。
TSUBAMEでは、資源割り当て以上に利用した場合はシステム側でKILLされる仕組みとなっているので、それが原因であると推察できます。
2.確保した時間を超過した場合の例
$ qacct -j 50000000 |
この例では、exit_statusとaccount、wallclockに注目します。
exit_statusを確認することで、何が原因でジョブが停止したかを確認できます。
例のexit_status 137 は128+9を示しますが、これだけだと多岐にわたるため、切り分けはできません。
そこでaccount、wallclockに注目します。
accountのスペース区切りで7つめの数字は資源を確保した時間(秒)を示します。
この例では600秒です。
wallclockは経過時間を示し、この例では614秒で終了しております。
資源確保時間内に計算が終了しなかったため、システム側でKILLされたと推察できます。
関連FAQ:Linuxのよくあるエラーについて