Linuxでデバッグしているアプリケーションでパフォーマンスのボトルネックの原因を追跡しようとしています。さまざまなプロセスがI/O要求をブロックするのに多くの時間を費やしているように見えますが、なぜ特定のプロセスがブロックされているのか/それがどのリソースを待っているのかを誰かが知っているのだろうか? /proc
には何か便利なものがありますか?Linuxプロセスが何を待っているかをどのように伝えますか?
17
A
答えて
13
どのようなプロセスであっても、top
を使用して状態を確認します。その後、truss or straceまで実行できます。それは何が起こっているかを詳述する必要があります。それが不可能な場合は、までgdbまでフックしてください。 iostatのようなツールは、一般的に何が起こっているのかを表示します(たとえば、ディスクがボトルネックの場合)。
7
strace
コマンドを使用して、プロセスが何であるかを確認できます。プロセス上でlsof
を実行して、使用しているファイルとソケットを確認すると便利です。
6
各システムコールに費やす時間を得ることができるので、straceはあなたの友人です。加えて、興味のあるファイル記述子とシステムコールを選択することもできます。カーネルからサポートを受けることもできます: latencytop
関連する問題
- 1. Linuxに特定のプロセスのメモリをスワップしないように伝えることはできますか?
- 2. ファイルが別のプロセス(Java/Linux)によって開かれているかどうかをチェックする方法は?
- 3. 何かが間違っているように見えます
- 4. Linuxはプロセスによってどれだけの物理メモリが使用されているかをどのように知っていますか?
- 5. 行が隠されているかどうかを伝える
- 6. MPI_Waitanyがいくつかのプロセスを待っていません
- 7. プロセスのカスタムルートはどのようになっていますか?
- 8. MemoryMappedFileを別のプロセスから更新したことをどのように伝えますか?
- 9. LinuxがPAEモードまたは非PAEモードであることをプログラムでどのように伝えるか?
- 10. スタンがどのように振る舞い、それが私たちに何を伝えるのか?
- 11. ツールバーボタンはどのように待っていますか?
- 12. 何がベクトルで、他のものではないかをどのように伝えるか?
- 13. カスタムジェネレータについてswagger-codgenにどのように伝えますか?
- 14. プロセスがオンラインになるのを待っています
- 15. どのタイプのデータが何であるかを伝える、Python
- 16. WatchOS 3 - 親アプリがフォアグラウンドにあるかどうかをどのように伝えますか?
- 17. ビジュアルスタジオはC++とCにどのように伝えますか?
- 18. どの要素がどのように表示されているのかを角で伝えます。
- 19. 子プロセス内のSIGINTが親プロセスに伝播し、親プロセスを強制終了させないようにするにはどうすればよいですか?
- 20. CPUスケジューリングがLinuxのプロセスやスレッドに基づいているかどうか?
- 21. 誰かが私が間違っていることをどこに伝えることができますか?
- 22. SCTPはLinuxを使って宣伝されているように動作しますか?
- 23. どのようなプロセスがそれにアクセスしているのかを知っているLinuxファイルシステムをどのAPIで実装できるのですか?
- 24. モジュールのCPANページからコア配布物にあるかどうかをどのように伝えますか?
- 25. メモリ内で、セクションがプログラムか静的なlibかどうかをどのように伝えますか?
- 26. イベントが.click()またはユーザーによって発生したかどうかをどのように伝えますか?
- 27. linuxのプロセスにスタックがどのように割り当てられるか
- 28. 私のプロセスは入力を待っていますか?
- 29. オペレーティングシステムは、どのプロセスが関数を呼び出すのかをどのように知っていますか?
- 30. Proguard Androidどのように伝える?