この問題を解決するのに役立ちますか? RAM使用量(RAMだけでなくCPUとネットワーク)を監視し、過去X秒間に最も多くのRAMを使用する3つのプロセスを表示するbashスクリプトを作成しようとしています。以下を実行して、最も多くのメモリを使用するプロセスを見つけることができることを知っています。
ps aux | awk '{print $2, $4, $11}' | sort -k2rn | head -n 3
しかし、このようなことをどのように繰り返すことができますか?私は今ここで何が起こっているのか見たくありませんが、60秒間監視し、最も多くのRAMを使用する上位3つのプロセスを確認します。
ベストアンサー1
私はdstat
コマンドを使用します。とても便利です。以下を使って探索してみてください。man dstat
たとえば、
3秒ごとに最も高価なメモリを探します。
#dstat --top-mem 3
--most-expensive-
memory process
firefox 1430M
firefox 1430M
firefox 1431M
firefox 1435M
firefox 1435M
firefox 1435M
firefox 1435M
firefox 1438M
同様に、CPU、ネットワーク、IOなどのポイントを設定できます。
dstat --top-cpu 3
-most-expensive-
cpu process
firefox 3.5
firefox 4.5
firefox 2.4
firefox 2.6
firefox 2.8
firefox 2.0
firefox 2.8