Linux內存的釋放

    在Linux系統下,一般不需要釋放內存,因爲系統已經將內存管理的很好了。但凡是也有例外,有的時候內存會被莫名其妙的佔用掉,導致系統內存很低,此時就需要釋放內存(清理緩存)。

    Linux系統的緩存機子是相當先進的,它會針對dentry(用於VFS,加速文件路徑名到inode的轉換)、Buffer Cache(針對磁盤塊的讀寫)和Page Cache(針對文件inode的讀寫)進行緩存操作。但是在進行了大量的文件操作後,緩存會把內存資源基本用光。但實際上我們文件操作已經完成,這部分緩存已經用不到了。這個時候我們難道只能眼睜睜的看着緩存 把內存空間佔據掉麼(不可能)?
    要達到釋放緩存的目的,我們首先要了解下關鍵的配置文件 /proc/sys/vm/drop_caches  這個文件記錄了緩存釋放的參數,默認值爲0,也就是不釋放緩存,同時其有也其他的參數:

    0    :不釋放緩存

    1    :釋放頁緩存

       :釋放dentries和inodes

    3    :釋放所有緩存


    下面開始對緩存進行釋放:

    (1)#free -m  首先查看內存使用情況


    (2)#sync   使用sync命令,將所有未寫的系統緩衝區寫到磁盤中,包含已修改的inode、已延遲的塊I/O和讀寫映射文件。否則在釋放緩存的過程中,可能會丟失保存的文件。

    (3)#echo 3 > /proc/sys/vm/drop_caches  將需要的參數寫入到文件中,此命令輸入後立即生效,此時可以直接查看可使用內存就會明顯增加

       #cat /proc/sys/vm/drop_caches

    (4)#sysctl -p    使配置立即生效

    (5)#free -m    查看內存情況

        


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章