Linux系統內存占用90%以上——解決方法


Linux系統內存占用90%以上,是否屬於正常范圍? 
Linux/Unix系統管理內存的方式和windows是不一樣的,即便是一個負載很小的linux,跑幾天后,內存占用量也將達到90%以上,即便無人訪問,這個數字是完全正常的。但是,這個內存占用量不會達到100%的,每天夜里系統都會執行/etc/cron.daily進行內存優化。 
 
Linux/Unix系統是非常穩健的,雖然內存占用顯示90%以上,但依然可保證365天以上無須重啟。對於Linux系統,評估其壓力的主要指標是最近5分鍾的負載指數:比如用w命令或者top去看,可以看到“0.70 0.35 0.01”這樣的數字,分別表示5分鍾內的、10分鍾內的、15分鍾內排隊的進程數,只要第一個數字即5分鍾內的負載不大於5,系統就是健康的,不用做任何維護;如果這個數字大於了5,那么通常系統速度就會變慢,一般有如下幾種可能: 

1) 有程序占用大量CPU,使用top命令來檢查(看看是否有java程序鎖死之類的故障) 
 
2) 有程序占用大量內存,使得內存真正不夠用了(這個才是真正需要加內存的時候),比如由於MySQL在較大負載下運行容量為GB級別的數據庫導致內存不夠用,需要給服務器插入更多物理內存 
 
3) 磁盤系統讀寫故障,IO吞吐錯誤造成CPU負載上升,需要光盤引導進入單用戶模式掃描修復磁盤,修不好就只能更換新硬盤了 
 
因此,對於Linux/Unix系統內存占用的百分比,無須過於關心,一般檢查系統負載參數即可 

但也可以手動進行內存釋放,具體操作如下: 
cat /proc/sys/vm/drop_caches
0

首先,/proc/sys/vm/drop_caches的值,默認為0

free一下查看當前內存可使用的較少,執行一下以下的命令,可以解決當前的問題

echo 3 > /proc/sys/vm/drop_caches 

 結果

cat /proc/sys/vm/drop_caches
3

再來運行free命令,發現現在的used為66MB,free為182MB,buffers為0MB,cached為11MB.那么有效的釋放了buffer和cache.   

 


免責聲明!

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



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