プロセスの休止/待機チェーンの描画

プロセスの休止/待機チェーンの描画

私はパイプラインの途中にあるプロセスがなぜスリープ状態にあり、データ処理に忙しくないのかよく考えました。私の現在のアプローチは次のとおりです。

  1. pid興味深いものを発見
  2. sudo strace -pt pidブロックシステムコールとオブジェクト(fd、child、futexなど)のインポート
  3. Ctrlcstraceを分離するにはクリックしてください。
  4. 適切なオブジェクトを探す/proc/pid
  5. grep /proc/またはlsof待機中のパイプまたはプロセスのもう一方の端を探している場合
  6. 新しいものとして#1から繰り返しpid

strace一緒にうまく機能しない(特に自動化するのが難しい)多くのツールを組み合わせるのはかなり遅いプロセスです。このループを実行し、プロセスの待機チェーンを引き出すことができ、または少なくとも1回の反復をあまりぎこちなくするツールがありますか?

Linux 3.2、Ubuntu LTS 12、x64、VirtualBox(利用可能な場合)。

ベストアンサー1

ほとんどpsの場合、ツリーオプションまたは適切な名前の関連ユーティリティですptree

現在の作業システムにはptreeがないため、現在は次のものを使用しています。

ps fauw 

私も一つあると思います。

ps taux (t making more sense than f)

最後に、一部のPSには、ビューにプログラムスレッドを含めるオプションもあります。

これはあなた(そして私)が期待していた自動化されたソリューションではありませんが、私の経験によれば、プロセスツリーには一連の「可能な容疑者」があり、一般的にツリーをスキャンするだけで問題がどこにあるかを推測できます。

おすすめ記事