linux系統一般不需要我們手動釋放內存,必要時也就是釋放緩存的操作。
首先了解下配文件/proc/sys/vm/drop_caches:這個文件記錄了緩存釋放的參數,默認值爲0,也是說不釋放緩存。它的值可以爲0-3之間任意數字,代表着不同的含義:
0 – 不釋放
1 – 釋放頁緩存
2 – 釋放dentries和inodes
3 – 釋放所有緩存
大概瞭解參數後,就剩下操作了。
首先查看系統內存使用情況free -g 這是以GB顯示。
其中第一行用全局角度描述系統使用的內存狀況:
total——總物理內存
used——已使用內存,一般情況這個值會比較大,因爲這個值包括了cache+應用程序使用的內存
free——完全未被使用的內存
shared——應用程序共享內存
buffers——緩存,主要用於目錄方面,inode值等(ls大目錄可看到這個值增加)
cached——緩存,用於已打開的文件
used——已使用
free——未使用
首先我們需要使用sync指令,將所有未寫的系統緩衝區寫到磁盤中,包含已修改的 i-node、已延遲的塊 I/O 和讀寫映射文件。否則在釋放緩存的過程中,可能會丟失未保存的文件。
sync #將所有未寫入系統緩衝區的數據寫到磁盤中
echo 2 > /proc/sys/vm/drop_caches #修改記錄緩存參數,該參數按個人情況修改。
此指令輸入後會立即生效,可以查詢現在的可用內存明顯的變多了。
這時查看內存已恢復正常並修改回默認值。