非常に CPU を集中的に使用するデータ変更スクリプトを作成しました。数日間実行されていますが、現在 (コンソールに送信された追跡メッセージのおかげで)、動作していないことがわかります (実際には、過去 10 時間ほど動作していません.
を実行するtop
と、プロセスがスリープ状態 (S) または解釈不能なスリープ状態 (D) であることがわかります。これは多くの時間を無駄にしています。
以前sudo renice -10 PID
はプロセスのナイス値を変更していましたが、しばらく実行した後、プロセスが再びスリープ状態に戻ったことに気付きました。
私の質問:
スクリプトが終了するまでスクリプトを強制的に実行するためにできることはありますか (それがスクリプトの最後までマシンが使用できないことを意味する場合でも?
Python で使用できるコマンドはあり
yield
ますか?これにより、他のプロセス/スレッドに定期的に制御を渡して、スケジューラがスクリプトをスリープ状態にしようとするのを停止できますか?
Ubuntu 10.0.4でpython 2.7.xを使用しています