使用しています:SLURM Zombiejobのクリーンアップは、私は次のような問題に直面しています
私のモジュールは、SLURM投与クラスタ上のジョブの数を管理する必要があります。バッチ全体は--multiprogを使用して開始されます。
これらのうちの1つはrabbitMQ接続を使用しています。悲しいことに、悲しいことに、私の決定ではなく、正常に終了することはできません。その結果、このサブジョブは、バッチ全体がslurmによってシャットダウンされると、「ゾンビ」ジョブを残します。さらに悪いことに、それはハートビートを送って、rabbitMQ接続を生き続けるなどします。
本質的に私はそれぞれの仕事の後にゾンビの狩りに行く必要があります。私は単純なエピローグ(killall -9 -f)でこれを実行しようとしましたが、明らかにエピローグは完全なノードリストを取得しないので、このジョブが使用したすべてのノードに "undead"を適用することはできません。
バッチファイルのenv変数からすべてのmultiprog-subjobの完全なノードリストを取得していないようです。
自分のノードを私に送るサブジョブを得ることができました...しかし、それは自分自身ができないサブジョブコードの変更を必要とし、未来を保証するものでもありません。 --multiprog ...の代わりに同じバッチからジョブを実行してみましたが、そのオプションにはワームの可能性があります。
だから、最善の解決策は、その2つのことに頼らなくても実行できる方法です。
誰もこのような状況での経験があり、ソリューションのフックを提案できますか?
クラスタまたは一般ユーザーの管理者はいますか? – damienfrancois
私は定期的にユーザーです。私は今ゾンビの仕事を避けることで問題を解決しました(ヒント:slurmはバッチファイルのシェルスクリプトをあまりうまく処理しません)。 しかし、ゾンビが頭を上げる危険があることを考えれば、私は毎日の "手仕事"サービスの解決策を試してみたいと思っています。 –