
私の大学では、多くの関係者が使用するサーバー上で数日間実行される非常に大規模なテスト セットアップがあります。
pid によってプロセス (およびプロセスによって実行されるプロセス (現在プロセスが実行中の場合)) を一時停止し、CPU を大量に使用するプロセスが停止されるたびに続行したいと思います。CPU を大量に使用するプロセスは、少なくとも 1 つのコアを 15 秒以上 100% で使用する場合に関連があると見なします。
(「top」出力をどのように解釈すればよいかよくわかりませんが、CPU 使用率が 2300% のプロセスが頻繁に表示されます。これは、23 個のコアが 100% で実行されている、または 22 個のコアが (100%-x%)*22=2300% で実行されているなどと解釈します。)
プロセスを一時停止するには、基本的に 2 つの bash コマンドから選択する必要があります。
kill -TSTP [pid]
そして
kill -STOP [pid]
プロセスを続行するには、次を使用します。
kill -CONT [pid]
私のPython スクリプトテストセットアップで実行されるそれによって実行されるプロセスの実行時間測定方法はあるかとお聞きしたいのですがプロセスの実行中の時間のみを測定する? (私はまた、Python スクリプトによって実行されるプロセスの組み込み関数によって正確な計算時間を測定しますが、いくつかの疑わしい結果 (絶対時間は疑わしいが、相対時間は正しいようです) のため、外部 (Python スクリプト) からの時間測定はそれほど正確ではありませんが、少なくともある程度は使用できます)
まとめ
- これらのプロセスを見つけてそれに応じて反応するスクリプトをどのように設計すればよいでしょうか? (サーバーにルート権限はありませんが、実行されたすべてのプロセスを確認し、自分のプロセスを処理できます)
- プロセスが一時停止された時間を除いて、これらのプロセスで正確な時間測定 (+/- 10 秒) を行うにはどうすればよいでしょうか?