在實時系統中,一般swap都使用比較少,最佳狀態就是used一直爲0,但是 在工作中,我們遇到一個問題,swap的free空間正在不斷變小。如果從top結果來看,我們能找出哪些process使用VSZ和RSS比較多,但是並不能確定到底是誰被更多swap。
host:/root-# free
total used free shared buffers cached
Mem: 8050416 8007984 42432 0 1237124 229692
-/+ buffers/cache: 6541168 1509248
Swap: 4200988 4098364 102624 <--藍色的數字在不斷變小。
使用以下腳本,我們就能監測前面20個vsz使用大的進程vsz/rss的變化情況,通過與free結果結合比較,就能確定到底誰被swap了。
while true
do
date
ps -aeo "pid vsz rss comm" | sort -n -k2 | tail -20
free
sleep 10
done >/tmp/monitor.log