問題描述:
通過free查看時,大概有一半以上的物理內存分配到cache里面,這樣大的 cache是造成內存的耗盡緣由,與此同時使用top或ps查看進程時,kswapd進程負荷 很高,一般在90%以上,kswapd進程的作用是用於內存回收,確保系統空閑物理內 存的數量在一個合適的范圍,它是按照一定比率來回收系統當前不活動的內存(默 認的比率是5%),也就是cache和buffer占用的。
在紅旗4.0或4.1服務器版本(小於2.4.21-9.30的內核應該都存在這個問題)上安裝數據庫或OA應用出現機率比較高,因 為這些應用有大量的數據需要在內存和硬盤之間交換,這應該屬於內核的一個 BUG,在4.1上打上SP1的補丁就不會有這種情況了。
解決方案:
將inactive_clean_percent 的值由缺省的5調整到 100,這樣做的目的就是設置kswapd回收內存的比率為100%,具體做法是:
# echo 100 > /proc/sys/vm/inactive_clean_percent
如果能解決問題,最好把的這條命令加到rc.local里面。