centos内存大量被占用(kswap进程CPU利用率过高100%)的解决方案

时间:2024-02-29 18:08:48

问题描述:  
    通过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里面。