從2.6.16版本的kernel開始,我們可以使用proc文件系統(tǒng)中的smaps來查找這個問題。下邊是一個列出所有進程占用swap分區(qū)情況的列表??梢酝ㄟ^簡單修改就可以用于統(tǒng)計在/proc/$PID/smaps查出。以下是腳本:
for i in `cd /proc;ls |grep "^[0-9]"|awk ' $0 >100'` ;do awk '/Swap:/{a=a+$2}END{print '"$i"',a/1024"M"}' /proc/$i/smaps ;done |sort -k2nr