Skip to content

Linux 記憶體耗盡清除快取 Memory Cache 取得更多記憶體

Ubuntu或CentOS系統運作一陣子後,會發現buff/cache佔用了非常大量比例導致記憶體過少,又不想透過重開機來重新釋放記憶體,可以利用下方指令來釋放 Linux 記憶體。

Linux 會用占記憶體來做buff/cache,是為了加速系統在讀取檔案時的效率。

Free 的空間太小對於程式運作上不會有任何問題,因為應用程式可以使用的記憶體空間是 free + buffer + cache。

確認目前記憶體

已下例子中 free 的記憶體空間只剩下 274 MB,大多都被buff/cache使用掉了,

$ free -m
              total        used        free      shared  buff/cache   available
Mem:           7810         523         274         140        7012        6840
Swap:             0           0           0

頁面緩存清除指令

sudo sh -c 'echo 1 >/proc/sys/vm/drop_caches'

目錄和索引節點清除指令

sudo sh -c 'echo 2 >/proc/sys/vm/drop_caches'

pagecache、dentries 和 inode 清除指令

sudo sh -c 'echo 3 >/proc/sys/vm/drop_caches'

以上動作都需要root 權限才能運作,故所有指令必須加上 sudo 。

以上清除的對象都是乾淨緩存(已經處理完畢),在執行清除前可先執行sync指令,將更多還沒變成乾淨緩存的對象進行標記及處理,當強制釋放記憶體時,才可以回收到更多記憶體空間。

參考來源:

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *