Linuxプロセスが何を待っているかを知るにはどうすればよいですか?
-
03-07-2019 - |
質問
Linuxでデバッグしているアプリケーションのパフォーマンスのボトルネックの原因を追跡しようとしています。関係するさまざまなプロセスは、I / O要求のブロックに多くの時間を費やしているようで、特定のプロセスがブロックされている理由/それがどのリソースであるかを確認できるLinuxのトリックを知っている人がいるかどうか疑問に思っていました待ってる?たとえば、 / proc
に便利なものはありますか?
解決
どのプロセスでも、 top
を使用して状態を確認します。次に、 trussまたはstrace で実行できます。それは何が起こっているのかを詳述する必要があります。それが不可能な場合は、 it を gdb 。 iostat のようなツールは、一般的に何が起こっているかを示します(たとえば、ディスクがボトルネックの場合) 。
他のヒント
strace
コマンドを使用して、プロセスの状態を確認できます。また、プロセスで lsof
を実行して、使用しているファイルとソケットを確認すると便利な場合があります。
straceはあなたの友人です。なぜなら、各システムコールに費やされる時間を得ることができ、さらに興味のあるファイル記述子とシステムコールを選択できるからです。しかし、カーネルからサポートを受けることもできます。 a href = "http://www.latencytop.org/" rel = "noreferrer"> latencytop
所属していません StackOverflow