關於Linux檔案cache

2021-07-05 04:53:28 字數 822 閱讀 4173

執行free -mh 命令,可以看到如下顯示:

總記憶體15g,顯示使用了14g,剩餘只有466m。這是因為linux自動管理了cache造成的。

特別注意下第二行,這是什麼意思呢?解釋如下

-buffers/cache  = used - buffers - cached,這個是應用程式真實使用的記憶體大小

+buffers/cache = free  + buffers + cached,這個是伺服器真實還可利用的記憶體大小

就是說,buffers+cache=10.7g,被使用的記憶體中實際應用程式占用了14-10.7=3.3g,總的可用記憶體為466m+10.7g=11g。

可用使用如下命令清除cache:

sync

echo 3 > /proc/sys/vm/drop_caches

清理之後如下所示,cache從10.7g減少到6.8g(由於執行命令時正在進行io操作,cache又不停增加了)

實際上cache區域記憶體是自動管理的,當記憶體不夠時作業系統會自動**cache記憶體,不需要手動清除=.=

結論:如果想知道程式占用了多少記憶體,實際上只需要看第二行就可以了。

各引數含義:

total:總物理記憶體

used:已使用記憶體

free:完全未被使用的記憶體

shared:應用程式共享記憶體

buffers:快取,主要用於目錄方面,inode值等

cached:快取,用於已開啟的檔案

-buffers/cache:應用程式使用的記憶體大小,used減去快取值

+buffers/cache:所有可**用程式使用的記憶體大小,free加上快取值

關於linux的cache問題

關於linux的cache問題 今天,被人問到關於linux檔案系統的cache問題 重要說明由於本人剛開始學習,所以基本上不知道什麼意思,就知道可能是用於快取的東東。如果想知道非常深入的結果,請搜尋understanding the linux kernel這本書,我上傳到51cto了,呵呵 包含...

清理linux記憶體cache

1.top中的buffers和cached cached快取了對檔案的讀寫,buffers快取了inode,dentry等檔案系統metadata。顯然,metadata大小遠遠小於檔案記憶體,所以buffers一般也遠小於cached。cached的部分叫page cache,buffers的部分...

清理linux記憶體cache

在使用grep從很多檔案中搜尋特定資料串的時候,發現記憶體使用迅速提高,主要是cache的使用占用了相當多的記憶體。在使用下面命令的時候忽視了檔案的數量和檔案大小,導致cache突增。grep e dst string 大家在使用shell程式設計的時候一定要注意萬用字元的使用,這裡尤其提醒大家就是...