系統卡死看內存一直占滿(used)過高的誤解


最近個人負責的系統總是卡死,查日志有內存溢出的情況,網上搜索總結下:

1、第一種情況,裝日志文件的空間滿了,怎么點都不會打日志,就以為系統掛了,可用df -h看看具體使用情況。

 

 

 2、第二種就是內存不斷的增加,某時刻要執行的功能需要的內存很多,但是系統無法一下釋放那么多空間就會內存溢出。 最初自己的處理辦法就是萬能重啟。

后來用echo 3 > /proc/sys/vm/drop_caches 這個方法釋放了內存,但是這個方法的影響還在學習補充中。

 

剛開始以為used過多就會有問題,其實不然,網上找了點資料學習了下。

資料:

在Linux中經常發現空閑內存很少,似乎所有的內存都被系統占用了,表面感覺是內存不夠用了,其實不然。這是Linux內存管理的一個優秀特性,在這方 面,區別於 Windows的內存管理。主要特點是,無論物理內存有多大,Linux 都將其充份利用,將一些程序調用過的硬盤數據讀入內存,利用內存讀寫的高速特性來提高Linux系統的數據訪問性能。

Linux 的這一特性,主要是利用空閑的物理內存,划分出一部份空間,做為 cache 和 buffers ,以此提高數據訪問性能。

Linux 優先使用物理內存,當物理內存還有空閑時,linux是不會施放內存的,即時占用內存的程序已經被關閉了(這部分內存就用來做緩存了)。也就是說,即時你有2G的內存,用過一段時間后,也會被占滿。這樣做的好處是,啟動那些剛開啟過的程序、或是讀取剛存取過得數據會比較快,對於服務器很有好處。

 

一路成長,記錄分享,內存調優還在學習中,后續繼續記錄。

 


免責聲明!

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



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