私は、CPU、I / O、時間の経過によるメモリ使用量、オプションでシステムコールに費やされた時間など、単一のプロセスをプロファイリングする方法を探しています。
いくつかの基本的なプロファイリング機能を提供するように指示されていますが、callgrind
デバッグ情報のみを提供し、記載されている他の情報はほとんど不足しています。
私はstrace -c
すべてのシステムコールと必要なCPU時間の要約を提供することを知っています。
(io)top
などの複数のIO関連ツールを知っていますが、iostat
すべてvmstat
個々のプロセスに関する詳細な統計が不足しています。また、/proc/$PID/io
個々のプロセスに関するいくつかのIO統計を提供しますが、時間の経過とともにIO情報を収集するには定期的に読む必要があります。
pidstat
CPU負荷、IO統計、およびメモリ使用率は提供されていますが、システムコールは提供されず、時間の経過ではなく高い粒度でのみ提供されることがわかります。
もちろん、説明されているいくつかのツールを組み合わせることで、時間の経過とともにこの情報を収集することができますが、詳細は不足して重要な情報が失われます。私が探しているのは、時間の経過とともに言及された情報のすべて(または少なくともほとんど)を提供できる単一のツールです。そのようなツールがありますか?
答え1
その間私は私自身のプログラムを書いた。オードリア- 現在/平均CPU使用率、仮想メモリ使用量、IOロード、およびその他の情報を含む、1つ以上のプロセスのリソース使用量を監視できます。
答え2
試してみましたか?Remotetaskmonitor.com?単一のプロセスまたはスレッドを選択し、時間の経過とともにCPU使用率をキャプチャできます。 CPU およびメモリ使用量グラフが生成されます。
別のオプションは次のとおりです。cpuprofiler.com。ただし、これによりCPUデータがクラウドに保存され、WebブラウザからログインしてCPUレポートを表示できます。
答え3
オーストリアのセクションほとんどのディストリビューションストアで利用可能なパッケージは、CPUのハードウェアパフォーマンスカウンタを使用して、プロセス固有またはシステム全体のイベントとプロセス分析をオプションで提供します。