linux清理快取cache

2022-06-16 05:18:08 字數 1148 閱讀 8075

linux伺服器有自己先進的記憶體管理機制,有時候會發現我們系統的buff/cache記憶體占用會越來越高,作業系統也有卡頓的情況,遇到這種情況,不妨試試下面的方法。

步驟一:我們先使用free -m檢視記憶體占用情況,可以看到記憶體中大部分記憶體被buff/cache占用,free記憶體已經剩餘400多m了。

對上面記憶體引數進行說明,記憶體也可以使用top命令檢視

total——總物理記憶體

used——已使用記憶體

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

shared——應用程式共享記憶體

buffers——快取,主要用於目錄方面,inode值等(ls大目錄可看到這個值增加)

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

-buffers/cache=used-buffers-cached

+buffers/cache=free+buffers+cached

步驟二:釋放之前執行sync命令同步資料導硬碟中。

linux的快取機制是這樣的,當第一次讀取乙個檔案時,乙份放到記憶體cache中,另外乙份放到執行程式的記憶體中,當下次再使用的時候,直接從cache中讀取資料,速度就會快很多,但是有頻繁的讀寫,而drop_cache預設是不釋放的,就導致cache占用越來越多,物理記憶體會逐漸被吃了,當然此設定也是可以修改的,我們下面看怎麼臨時釋放cache記憶體。

步驟三:執行如下命令釋放所有快取

[root@localhost ~]# echo 3 > /proc/sys/vm/drop_caches
drop_caches的值可以是0-3之間的數字,代表不同的含義

0:不釋放(系統預設值)

1:釋放頁快取

2:釋放dentries和inodes

3:釋放所有快取

命令執行後,可以看到,快取釋放,free記憶體已經上公升,系統也流暢了很多。

清理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程式設計的時候一定要注意萬用字元的使用,這裡尤其提醒大家就是...

Linux 清理快取,定時清理快取指令碼

檢視記憶體使用率 free m sed n 2p awk 清理記憶體 sync echo 1 proc sys vm drop caches 要達到釋放快取的目的,我們首先需要了解下關鍵的配置檔案 proc sys vm drop caches。這個檔案中記錄了快取釋放的引數,預設值為0,也就是不釋...