關於linux的cache問題

2021-09-01 03:18:38 字數 847 閱讀 3077

關於linux的cache問題

今天,被人問到關於linux檔案系統的cache問題;

##重要說明由於本人剛開始學習,所以基本上不知道什麼意思,就知道可能是用於快取的東東。(如果想知道非常深入的結果,請搜尋understanding the linux kernel這本書,我上傳到51cto了,呵呵)

包含:·page cache:頁面快取記憶體,用於檔案系統交付給應用程式使用時,只是先叫記憶體提取一部分檔案資料,分頁進行快取,然後記憶體通過mmap,提供給引用程式使用。(與應用程式,記憶體管理,vfs三部分有關)

·block cache:用於page cache與磁碟結構之間的互動,用於對磁碟訊息的讀取。(與具體檔案系統(如:ext2/3,ntfs),記憶體管理,磁碟儲存三部分有關)

關於cache的資料查詢:

如:linux中:cat /proc/meminfo

命令工具:free;top。

對於page cache的關閉:

如:echo 1 > /proc/sys/vm/cache_stop

對於磁碟的檔案cache設定:

使用haparm工具,使用-a[01]選項進行設定:

如:sync

haparm -a0 /dev/sda

問題點:

檢視free等,cache的佔用率,好像cache占用數減少了,但是未完全減少;

對page cache的取消功能,是否起作用,需要再確認;

對於以上問題點,後續使用iometer等測試工具試驗一下。

也許,我們看到的cache,只是可使用量的問題,而不是已使用量?

#該文章未完,待續。。

2012-2-9 ych4865 進行了第一次編寫

關於Linux檔案cache

執行free mh 命令,可以看到如下顯示 總記憶體15g,顯示使用了14g,剩餘只有466m。這是因為linux自動管理了cache造成的。特別注意下第二行,這是什麼意思呢?解釋如下 buffers cache used buffers cached,這個是應用程式真實使用的記憶體大小 buffe...

關於buffer和cache的區別

1.cache 快取區,是快取記憶體,是位於cpu和主記憶體之間的容量較小但速度很快的儲存器,因為cpu的速度遠遠高於主記憶體的速度,cpu從記憶體中讀取資料需等待很長的時間,而 cache儲存著cpu剛用過的資料或迴圈使用的部分資料,這時從cache中讀取資料會更快,減少了cpu等待的時間,提高了...

清理linux記憶體cache

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