2009-04-29 7 views
17

Linuxでデバッグしているアプリケーションでパフォーマンスのボトルネックの原因を追跡しようとしています。さまざまなプロセスがI/O要求をブロックするのに多くの時間を費やしているように見えますが、なぜ特定のプロセスがブロックされているのか/それがどのリソースを待っているのかを誰かが知っているのだろうか? /procには何か便利なものがありますか?Linuxプロセスが何を待っているかをどのように伝えますか?

答えて

13

どのようなプロセスであっても、topを使用して状態を確認します。その後、truss or straceまで実行できます。それは何が起こっているかを詳述する必要があります。それが不可能な場合は、までgdbまでフックしてください。 iostatのようなツールは、一般的に何が起こっているのかを表示します(たとえば、ディスクがボトルネックの場合)。

7

straceコマンドを使用して、プロセスが何であるかを確認できます。プロセス上でlsofを実行して、使用しているファイルとソケットを確認すると便利です。

6

各システムコールに費やす時間を得ることができるので、straceはあなたの友人です。加えて、興味のあるファイル記述子とシステムコールを選択することもできます。カーネルからサポートを受けることもできます: latencytop

関連する問題