傳統的一些指令,並未把個別Process使用swap情況,比較明確
的顯示出來.
例如這個討論裡面 http://ithelp.ithome.com.tw/question/10144637?tab=opinion&oid=257392#257392
有提到.
所以現在有人開發出smem,可以比較方便的看出哪個Process的記憶體使用情況.
因為是比較新的程式,所以大多的Linux發行版,並未包含.
所以我們需要自己抓來用.
-- 安裝
wget http://www.selenic.com/smem/download/smem-1.4.tar.gz
tar xvf smem-1.4.tar.gz
cd smem-1.4
cp smem /usr/local/bin/
這樣就能使用了.
接著裝man文件.
cp smem.8 /usr/share/man/man8/
-- 使用
smem 這是最基本的,會回報現在執行的process的PID,User,Command, Swap,USS, PSS, RSS
smem -m 顯示library 使用的情況,這對要深入了解,很有用處.
smem -u 以user來區分作總計.
smem -t -p -p 使用百分比方式顯示, -t 最後作加總.
smem有直接提供過濾功能,不需要像ps 那樣後面再利用pipe 接grep
例如
smem -P [fF]irefox
若是有使用XWindow, smem 也能夠產生簡易的圖形報表.因為是使用Python的matplotlib,所以必須要安裝Python及matplotlib.
smem --bar name -c "swap pss rss"
這樣會產生個process的swap,pss,rss使用情況的 bar chart.
smem --pie name -c "pss"
產生各個process的pss使用情況的pie chart.
smem 另外有提供smemcap,用來統計/proc底下的資訊,
可以應用在資源較少的Linux設備.收集後的資訊會壓縮成
tar.gz的檔案,再傳到比較大的Linux上,使用smem來產生
報表.
補充說明,matplotlib產生出來的視窗,有互動的按鈕在底下,
可以視需要調整,並且可以存檔,有多種格式可以使用.