buff cache 占用過大問題

2022-09-18 08:06:30 字數 744 閱讀 3362

什麼是buffer cache

buffer cache則主要是設計用來在系統對塊裝置進行讀寫的時候,對塊進行資料快取的系統來使用。這意味著某些對塊的操作會使用buffer cache進行快取,比如我們在格式化檔案系統的時候。一般情況下兩個快取系統是一起配合使用的,比如當我們對乙個檔案進行寫操作的時候,page cache的內容會被改變,而buffer cache則可以用來將page標記為不同的緩衝區,並記錄是哪乙個緩衝區被修改了。這樣,核心在後續執行髒資料的回寫(writeback)時,就不用將整個page寫回,而只需要寫回修改的部分即可。

linux核心會在記憶體將要耗盡的時候,觸發記憶體**的工作,以便釋放出記憶體給急需記憶體的程序使用。一般情況下,這個操作中主要的記憶體釋放都來自於對buffer/cache的釋放。尤其是被使用更多的cache空間。既然它主要用來做快取,只是在記憶體夠用的時候加快程序對檔案的讀寫速度,那麼在記憶體壓力較大的情況下,當然有必要清空釋放cache,作為free空間分給相關程序使用。所以一般情況下,我們認為buffer/cache空間可以被釋放,這個理解是正確的。

echo 2 > /proc/sys/vm/drop_caches:表示清除**slab分配器中的物件(包括目錄項快取和inode快取)。slab分配器是核心中管理記憶體的一種機制,其中很多快取資料實現都是用的pagecache。

echo 3 > /proc/sys/vm/drop_caches:表示清除pagecache和slab分配器中的快取物件。

/yuezc/

SVN CPU記憶體占用過大問題

安裝了svn後會有乙個tsvncache.exe的程序駐留記憶體,這個程序會定時地去掃瞄subversion管理的資料夾 檔案是否被修改了,一旦發現有更新,那本地的這些有更新的檔案 資料夾就會被更新,這個動作不僅會占用10 85mb左右的記憶體,而且也會在執行的瞬間占用超過cpu 50 的負載。對於...

解決linux伺服器記憶體占用過大問題

tag 我要投稿 今天到公司按照慣例檢查了下所有伺服器的狀態,發現有台伺服器的記憶體占用比平常大很多,如下圖 在檢查過程中,我使用了top來看到底是哪個程序占用記憶體最大,看了近1分鐘沒有發現什麼,然後使用命令檢視占用記憶體最大的10個程序 ps aux sort k4nr head n 10 也只...

解決WSL2中Vmmem記憶體占用過大問題

1按下windows r 鍵,輸入 userprofile 並執行進入使用者資料夾 2新建檔案 wslconfig 然後記事本編輯 3 填入以下內容並儲存,memory為系統記憶體上限,這裡我限制最大2gb,可根據自身電腦配置設定 wsl2 memory 2gb swap 0 localhostfo...