從2.6.16版本的kernel開始,我們可以使用proc文件系統(tǒng)中的smaps來查找這個(gè)問題。下邊是一個(gè)列出所有進(jìn)程占用swap分區(qū)情況的列表??梢酝ㄟ^簡(jiǎn)單修改就可以用于統(tǒng)計(jì)在/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