プロセスリソース使用量情報を取得する最良の方法は何ですか?

プロセスリソース使用量情報を取得する最良の方法は何ですか?

一部の実行中のプロセスのリソース使用量を監視する最良の方法は何ですか?たとえば、一定期間のCPUとメモリ使用量のログファイルを生成したい場合です。

私が理解したのは、topコマンドまたはpsコマンドの使用、コード内のsysInfoコマンドの使用、/proc/ディレクトリのファイル直接クエリなど、さまざまなオプションがあります。いくつかの方法の長所と短所は明らかですが、例えばpsは平均CPU使用率を示しますが、topはよりすぐになります。質問topにもいくつかの問題があることを指摘しました)、私はまだLinuxに初めて触れているので、何かを見落とし、災いにつながりやすいと思います。

また、top、psを使用したりsysInfoを呼び出すのではなく、/proc/ファイルを直接クエリする方が良いですか?それともこのアプローチはお勧めできませんか?

ベストアンサー1

この問題特に関連する回答が多いこれ

これは、スクリプトを使用せずにウォッチを使用して簡単に実行できます。

watch -t -n 10 "(date '+TIME:%H:%M:%S' ; ps aux | grep "pattern" | wc -l) | tee -a ログファイル"

ただし、この回答で述べたように、「ps -auxww | grep 'pattern' | wc -l」の代わりに「ps -up PID」(特定のプロセスIDのリソース使用量を表示するには)を使用します。

watchコマンドの更新をより速くまたは遅くするために、「watch -t -n XX」の後にXX番号を変更することもできます(watch -n0,5 = 0.5秒ごとに更新、watch -n10 = 10秒ごとに更新) 。

おすすめ記事