2013年10月17日 星期四

檢查某個 process 的記憶體使用量

在 Linux 下檢查某個 process 記憶體用量的方法。
基本原則是檢視 /proc/$pid/smaps 的內容,以下提供一個簡單的Script。

 1 #!/bin/bash
 2 
 3 pid=$1
 4 if [ -f /proc/$pid/smaps ]; then
 5       echo "* Mem usage for PID $pid"
 6       echo "-- Size:"
 7       cat /proc/$pid/smaps | grep -m 1 -e ^Size: | awk '{print $2}'
 8       echo "-- Rss:"
 9       cat /proc/$pid/smaps | grep -m 1 -e ^Rss: | awk '{print $2}'
10       echo "-- Pss:"
11       cat /proc/$pid/smaps | grep -m 1 -e ^Pss: | awk '{print $2}'
12       echo "Shared Clean"
13       cat /proc/$pid/smaps | grep -m 1 -e '^Shared_Clean:' | awk '{
14       print $2}'
15       echo "Shared Dirty"
16       cat /proc/$pid/smaps | grep -m 1 -e '^Shared Dirty:' | awk '{
17       print $2}'
18 fi

參考資料: