実行するのに十分な空きコアがあるまでbashスクリプトを遅らせる方法は?

実行するのに十分な空きコアがあるまでbashスクリプトを遅らせる方法は?

私は学生で、NGSパイプラインをベンチマークして、割り当てられたコア数と入力ファイルサイズに基づいてパフォーマンスを監視したいと思います。だから私はbashスクリプトを書いて、さまざまなnr_of_coresパラメータと入力ファイルを使って何度も呼び出し、完了時間と他の統計を記録しました。さまざまなシーンを完成させるのに、全体の作業が1日ほどかかりました。 (もちろん、ほとんどの時間は単一のコアで最大のファイルを実行するのに費やされるため、この間サーバー全体をブロックするわけではありません)

これを実行するには、共有64コアサーバーにアクセスできます。ただし、共有サーバーの無料コア数は、時間とプロジェクトを完了したい人によって大きく異なります。 (私がテストした最高のnr_of_coresは小さなファイルで36でした。)

私の質問:コマンドを実行する前に[X]コアを使用できることがわかるまで、私のbashスクリプトを待つ簡単な方法はありますか?私はこのようにしてより信頼できるデータを得ることができ、より緊急のタスクを実行する必要がある人の速度を遅らせず、今日がhtopを通して見るのを待たずにいつでもスクリプトを起動できると思います。遅い日。

ありがとうございます!

ベストアンサー1

後でシステムを実行するように指示でき、システム管理者が賢明でインストールされていると仮定すると、次のatコマンドを使用して負荷レベルを十分に低くすることができます(デフォルトではゼロですが、システム管理者はしきい値に任意の値を設定できます) )):

batch << EOF
<command>
EOF

それ以外に私が知っている唯一の方法は、負荷平均を直接ポーリングし、負荷平均が特定のしきい値を下回った場合にコマンドを実行することです。このパスを選択することにした場合、確認したいのは/proc/loadavg1分平均を提供する最初のフィールドです。

おすすめ記事