TL;DR
githubから"memory.sh"をDLしてご利用ください。
コマンド実行後、"memory_size.txt" というファイルが生成されますので、
そちらからどのプロセスがどのくらいの使用しているか確認可能です。
使用量が多い順にソートされます。
コマンド
./memory.sh
動作確認環境
OS : RHEL/CentOS 7.*
シェルスクリプト解説
重要でないところは、省きます。
全プロセスのステータスファイルからメモリ情報を取得
# get memory data
for pid in $(grep VmSize /proc/*/status | cut -d/ -f3) ;do
name=$(grep Name /proc/$pid/status)
memorysize=$(grep VmSize /proc/$pid/status)
echo "-$name/PID:$pid/$memorysize"; echo
done
取得したデータを整形し、ソート
# shaping information
sed -i -e '/^$/d' -e 's/\t//g' -e 's/ //g' $temp
sed -i '/^grep/d' $temp
# sort informaiton
sed "s/kB//g" $temp |sort -r -n -k 4 -t : > $output
取得したデータ確認
TL;DRでも記述しましたが、
memory_size.txtというファイルが同ディレクトリに内に生成されますので、そちらを確認してください。
取得したデータ確認方法
/ がデミリタで左から
プロセス名、プロセスID、メモリ使用量(KB)
となっています。
-Name:sshd/PID:20073/VmSize:112920