linux 宕机 内存,Linux内存使用高,触发系统宕机
網(wǎng)上的解決方案:用ps查看各進(jìn)程的內(nèi)存,大約就占用了4G, 絕大部分內(nèi)存都是被Page Cache所占用。Linux內(nèi)核的策略是最大程度的利用內(nèi)存cache 文件系統(tǒng)的數(shù)據(jù),提高IO速度,雖然在機(jī)制上是有進(jìn)程需要更大的內(nèi)存時(shí),會(huì)自動(dòng)釋放Page Cache,但不排除釋放不及時(shí)或者釋放的內(nèi)存由于存在碎片不滿足進(jìn)程的內(nèi)存需求。
所以我們需要一個(gè)方法,能夠限定PageCache的上限。
Linux 提供了這樣一個(gè)參數(shù)min_free_kbytes,用來確定系統(tǒng)開始回收內(nèi)存的閥值,控制系統(tǒng)的空閑內(nèi)存。值越高,內(nèi)核越早開始回收內(nèi)存,空閑內(nèi)存越高。
其他可選的臨時(shí)解決方法:
關(guān)閉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
實(shí)際情況分析:內(nèi)存只剩下50MB,4GB內(nèi)存大部分被cache和buffer占用,導(dǎo)致系統(tǒng)宕機(jī),目前
設(shè)置了min_free_kbytes的閥值
#echo 400000 > /proc/sys/vm/min_free_kbytes
但實(shí)際上,并沒有從根本上解決問題.
情況如下:
1)內(nèi)存逐漸減少到50MB的時(shí)候,開始釋放,然后到達(dá)400MB,逐漸使用,最后回到50MB,依次循環(huán),實(shí)際上是非常危險(xiǎn)的,由此造成宕機(jī),說明這個(gè)設(shè)置并不是實(shí)時(shí)的,而是一個(gè)閥值檢測(cè)。
2)出現(xiàn)了out of memory的打印,系統(tǒng)日志出現(xiàn)問題了。
結(jié)論:設(shè)置的閥值不是實(shí)時(shí)有效的,而是一個(gè)動(dòng)態(tài)改變的過程。
總結(jié)
以上是生活随笔為你收集整理的linux 宕机 内存,Linux内存使用高,触发系统宕机的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 3ds_max入门教程
- 下一篇: CARD耐药数据库Linux使用