linux 內存不足時候 應該及時回收page cache


另一起問題是24G內存的系統,空閑內存已經不到50M

1. 確認該系統的版本是64位

# uname -a
Linux gxgd-nms-app 2.6.18-194.el5xen #1 SMP Tue Mar 16 22:01:26 EDT 2010 x86_64 x86_64 x86_64 GNU/Linux

2. 用ps查看各進程的內存,大約就占用了4G, 絕大部分內存都是被Page Cache所占用。Linux內核的策略是最大程度的利用內存cache 文件系統的數據,提高IO速度,雖然在機制上是有進程需要更大的內存時,會自動釋放Page Cache,但不排除釋放不及時或者釋放的內存由於存在碎片不滿足進程的內存需求。

   所以我們需要一個方法,能夠限定PageCache的上限。

Linux 提供了這樣一個參數min_free_kbytes,用來確定系統開始回收內存的閥值,控制系統的空閑內存。值越高,內核越早開始回收內存,空閑內存越高。

[root@zyite-app01 root]# cat /proc/sys/vm/min_free_kbytes
163840
echo 963840 > /proc/sys/vm/min_free_kbytes

其他可選的臨時解決方法:

關閉oom-killer

cat /proc/sys/vm/oom-kill
echo "0" > /proc/sys/vm/oom-kill
vi /etc/sysctl.conf
  vm.oom-kill = 0

2. 清空cache (可選)
echo 1 > /proc/sys/vm/drop_caches

 

 

 

original link:http://www.cnblogs.com/itfriend/archive/2011/12/14/2287160.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM