使用 free -h 檢視當前記憶體剩餘:
當前記憶體剩餘570m左右,另外buff/cache是1.3g,現在真正的剩餘記憶體應該是1.8g左右,首先寫快取到檔案系統:
sync
然後執行下面命令釋放記憶體(頁快取buff/cache):
echo 1 > /proc/sys/vm/drop_caches
執行完之後,再次檢視記憶體剩餘:
會發現記憶體被釋放了,可用記憶體確實變為1.8g左右
到這裡記憶體就釋放完了,現在drop_caches中的值為1,如果現在想讓作業系統重新分配記憶體,那麼設定drop_caches的值為0即可:
echo 0 > /proc/sys/vm/drop_caches
另外需要注意的是,在生產環境中的伺服器我們不要頻繁的去釋放記憶體,只在必要時候清理記憶體即可,更重要的是我們應該從應用程式層面去優化記憶體的利用和釋放,經常清理記憶體可能只是暫時遮蔽的應用程式中的一些bug,所以更重要的是程式的調優,其他的交給作業系統來管理。 Linux系統記憶體buff cache占用過多
用free或者top命令都能檢視記憶體使用情況 在雲伺服器上,total used free buff cache linux核心會在記憶體將要耗盡的時候,觸發記憶體 的工作,以便釋放出記憶體給急需記憶體的程序使用。一般情況下,這個操作中主要的記憶體釋放都來自於對buffer cache的釋放。還可...
buff cache 占用過大問題
什麼是buffer cache buffer cache則主要是設計用來在系統對塊裝置進行讀寫的時候,對塊進行資料快取的系統來使用。這意味著某些對塊的操作會使用buffer cache進行快取,比如我們在格式化檔案系統的時候。一般情況下兩個快取系統是一起配合使用的,比如當我們對乙個檔案進行寫操作的時...
主機磁碟空間未釋放問題在無法重啟時,臨時處理方法
之前遇到的磁碟df h 和du sh 檢視檔案大小結果不一致,發生這種情況的原因一般有兩種 1.有隱藏檔案 2.磁碟空間未釋放 被刪除的檔案正在被程序使用,所以linux系統認為檔案還存在,不對其空間進行釋放。解決思路 lsof grep deleted 找到未釋放的程序,第7列字段為檔案的大小,找...