linux 宕机 内存,Linux内存使用高,触发系统宕机
網上的解決方案:用ps查看各進程的內存,大約就占用了4G, 絕大部分內存都是被Page Cache所占用。Linux內核的策略是最大程度的利用內存cache 文件系統的數據,提高IO速度,雖然在機制上是有進程需要更大的內存時,會自動釋放Page Cache,但不排除釋放不及時或者釋放的內存由于存在碎片不滿足進程的內存需求。
所以我們需要一個方法,能夠限定PageCache的上限。
Linux 提供了這樣一個參數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
實際情況分析:內存只剩下50MB,4GB內存大部分被cache和buffer占用,導致系統宕機,目前
設置了min_free_kbytes的閥值
#echo 400000 > /proc/sys/vm/min_free_kbytes
但實際上,并沒有從根本上解決問題.
情況如下:
1)內存逐漸減少到50MB的時候,開始釋放,然后到達400MB,逐漸使用,最后回到50MB,依次循環,實際上是非常危險的,由此造成宕機,說明這個設置并不是實時的,而是一個閥值檢測。
2)出現了out of memory的打印,系統日志出現問題了。
結論:設置的閥值不是實時有效的,而是一個動態改變的過程。
總結
以上是生活随笔為你收集整理的linux 宕机 内存,Linux内存使用高,触发系统宕机的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 3ds_max入门教程
- 下一篇: iOS7下status bar相关问题的