Linux cached過高問題

2022-05-04 03:15:12 字數 1224 閱讀 2586

1. cached主要負責快取檔案使用, 日誌檔案過大造成cached區記憶體增大把記憶體占用完 .

free中的buffer和cache:(它們都是占用記憶體):

buffer : 作為buffer cache的記憶體,是塊裝置的讀寫緩衝區

cache: 作為page cache的記憶體, 檔案系統的cache

如果 cache 的值很大,說明cache住的檔案數很多。

linux 記憶體管理做了很多精心的設計,除了對dentry進行快取(用於vfs,加速檔案路徑名到inode的轉換),還採取了兩種主要cache方式:buffer cache和page cache,目的就是為了提公升磁碟io的效能。從低速的塊裝置上讀取資料會暫時儲存在記憶體中,即使資料在當時已經不再需要了,但在應用程式下一次訪問該資料時,它可以從記憶體中直接讀取,從而繞開低速的塊裝置,從而提高系統的整體效能。而linux會充分利用這些空閒的記憶體,設計思想是記憶體空閒還不如拿來多快取一些資料,等下次程式再次訪問這些資料速度就快了,而如果程式要使用記憶體而系統中記憶體又不足時,這時不是使用交換分割槽,而是快速**部分快取,將它們留給使用者程式使用。

因此,可以看出,buffers/cached真是百益而無一害,真正的壞處可能讓使用者產生一種錯覺——linux耗記憶體!其實不然,linux並沒有吃掉你的記憶體,只要還未使用到交換分割槽,你的記憶體所剩無幾時,你應該感到慶幸,因為linux 快取了大量的資料,也許下一次你就從中受益!

當你讀寫檔案的時候,linux核心為了提高讀寫效率與速度,會將檔案在記憶體中進行快取,這部分記憶體就是cache memory(快取記憶體)。即使你的程式執行結束後,cache memory也不會自動釋放。這就會導致你在linux系統中程式頻繁讀寫檔案後,你會發現可用物理記憶體會很少。

其實這快取記憶體(cache memory)在你需要使用記憶體的時候會自動釋放,所以你不必擔心沒有記憶體可用。如果你希望手動去釋放cache memory(快取記憶體)的話也是有辦法的。

2、手動釋放cached

釋放前最好sync一下,防止丟資料

to free pagecache:  echo 1 > /proc/sys/vm/drop_caches

to free dentries and inodes:  echo 2 > /proc/sys/vm/drop_caches

to free pagecache, dentries and inodes:  echo 3 > /proc/sys/vm/drop_caches

關於Linux cached 記憶體

linux與windows不同,會存在快取記憶體,通常叫做cache memory。有些時候你會發現沒有什麼程式在執行,但是使用top或free命令看到可用記憶體會很少。什麼是cache memory 快取記憶體 當你讀寫檔案的時候,linux核心為了提高讀寫效率與速度,會將檔案在記憶體中進行快取,...

關於Linux cached記憶體簡析

測試mbs系統,ap的weblogic 只是設定了1.5g記憶體,但是經過3次穩定性測試,記憶體的利用率達到99 nmon的監控揭發發現存在5.6g的cached記憶體,下面介紹一下 linux與windows不同,會存在快取記憶體,通常叫做cache memory。有些時候你會發現沒有什麼程式在執...

IIS站點cpu過高問題

經過監控發現,從某時刻開始iis站點cpu過高,經過檢視最新修改 曾發現一小問題,經過優化,發現並不是這些小問題造成。再沒有辦法情況下,經過對兩台負載均衡其中一台伺服器,進行逐個頁面 資料夾的ip限制,發現首頁動態頁面訪問量大。再次證明靜態頁面,比動態頁面效率高 效能項 資源 評價 cpu佔用率 7...