psコマンドでプロセス毎のメモリ使用量を確認すると物理メモリ(RSS)と仮想メモリ(VSZ)に分かれています。監視やチューニング等で確認するときは仮想メモリより物理メモリを参考にしたほうがわかりやすいです。今回はプロセス毎の物理メモリ使用量を確認するコマンドをまとめてみました。
指定プロセスの物理メモリ(RSS)合計
ps -eo rss,comm | awk 'BEGIN {SUM=0} {if ($2 == "httpd"){ SUM+=$1 }} END {printf("%dMB\n", SUM/1024)}'
指定プロセス数
ps -eo rss,comm | awk 'BEGIN {COUNT=0} {if ($2 == "httpd"){ COUNT+=1 }} END {print COUNT}'
指定プロセスの物理メモリ(RSS)平均
ps -eo rss,comm | awk 'BEGIN {SUM=0;COUNT=0} {if ($2 == "httpd"){ SUM+=$1;COUNT+=1 }} END {printf("%dKB\n", SUM/COUNT)}'
指定プロセスの物理メモリ(RSS)最大
ps -eo rss,comm | awk 'BEGIN {MAX=0} {if ($2 == "httpd"){ if (MAX < $1) { MAX=$1 }}} END {print MAX}'
プロセスメモリ使用率ランキング top50
ps -eo comm,rss | sort -rn -k 2 | head -n 50
指定プロセスのCPU使用率
ps -eo %cpu,comm | awk 'BEGIN {SUM=0} {if ($2 == "httpd"){ SUM+=$1 }} END {print SUM}'