讀寫檔案時,Linux核心為了提高讀寫效率與速度,會将檔案在記憶體中進行緩存,這就是Cache Memory(緩存記憶體)。
即使程式運作結束後,Cache Memory也不會自動釋放。這就會導緻程式頻繁讀寫檔案後,可用實體記憶體會很少。
其實這緩存記憶體(Cache Memory)在你需要使用記憶體的時候會自動釋放,是以不必擔心沒有記憶體可用。
如果你希望手動去釋放Cache Memory(緩存記憶體)的話也是有辦法的。
cat /proc/sys/vm/drop_caches
0 //預設是0;1-清空頁緩存;2-清空inode和目錄樹緩存;3-清空所有緩存
大多數GNU Linux都是預設開啟了緩存機制的,檢視配置檔案 cat /proc/sys/vm/drop_caches 若為0的話,則表示開啟了緩存機制的,這種機制在一直運作某個服務的時候非常有效,便于服務本身的快速讀取,而作為桌面使用者來說,打開的程式并不那麼單一,是以桌面使用者還是建議設定此配置檔案為1,及時對系統緩存進行清理,釋放空間以供其它程式使用。
[root@bak ~]# sync //注意:在清空緩存之前使用sync指令同步資料到磁盤
[root@bak ~]# free -m
total used free shared buffers cached
Mem: 15898 3029 12869 0 191 1064
-/+ buffers/cache: 1772 14125
Swap: 31999 0 31999
[root@bak ~]# echo 3 > /proc/sys/vm/drop_caches
[root@bak ~]# free -m //發現緩存明顯減少了
Mem: 15898 1770 14128 0 1 30
-/+ buffers/cache: 1738 14160
清理緩存腳本:
#!bin/bash
sync
echo 3 > /proc/sys/vm/drop_caches
本文轉自yzy121403725 51CTO部落格,原文連結:http://blog.51cto.com/lookingdream/1859445,如需轉載請自行聯系原作者