ps aux
を使用して、プロセスによって消費されたメインメモリの量を確認するにはどうすればよいですか?
30分実行するプロセスがあります。 ps aux
を使用して、メインメモリが消費する最大量を見つけることは可能ですか?
ps aux
を実行しようとしましたが、実行時に消費されたメモリ量しか得られません。プロセスによって消費されるメインメモリの最大量を見つける方法がわかりません。 1つのオプションは、ps
を何度も実行し、出力を確認し続けることです。私はそのオプションが十分に実行可能であるとは思いません。 Linuxで他の方法はありますか?
時間の経過に伴うメモリ使用量などの統計を記録するには、ある種の継続的な監視ツールが本当に必要なようです。
私はあなたが今何をしているのかを提案し、psコマンドを繰り返し実行して、プロセスごとに使用されるメモリのサイズを取得します。
人間が読めるグラフまたはテーブルに出力を解析して、経時的な値を表示する方法が必要になります。
個人的には、人間が読める形式でメモリ使用量を表示するために、別のフォーラムの誰かから取ったこの小さなコマンドが好きです。
ps -eo size,pid,user,command --sort -size | awk '{ hr=$1/1024 ; printf("%13.2f Mb ",hr) } { for ( x=4 ; x<=NF ; x++ ) { printf("%s ",$x) } print "" }'
ここでは、atop
ツールが役立ちます。デーモンとして実行し、すべてのプロセスのリソース消費に関する情報を定期的に保存できます。これは、結果をスクロールして戻ることができるため、プロセスで使用されているメモリの最大量を確認できます。
他の選択肢は、プロセスごとのメモリ消費量(および他の多くのもの)をグラフ化できるmuninやcactiのようなツールです。
一般に、/ proc/[pid]/statusファイルを表示できます。これには、VmPeakとRSSの値が含まれます。
RSSメモリに興味がある場合は、次のようなことができます。
while true ; do ( echo -n `date` "" ; grep RSS /proc/[pid]/status ) | tee -a /tmp/historyofrss ; sleep 0.1 ; done