跳至主要內容
CJCJ Kuo

全站文章搜尋

輸入關鍵字即刻在靜態索引中快速搜尋
↑↓ 導航 · Enter 選取前往獨立搜尋頁 →
Linux 記憶體耗盡清除快取 Memory Cache 取得更多記憶體
資訊技術••約 2 分鐘•323 字

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

本文目錄共 5 節

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指令,將更多還沒變成乾淨緩存的對象進行標記及處理,當強制釋放記憶體時,才可以回收到更多記憶體空間。

參考來源:

查看此系列所有文章 →
CJ Kuo (郭仕杰)

CJ Kuo (郭仕杰)

創辦人兼主筆

熱愛軟體架構、DevOps、系統調優與新技術探索的工程實踐者,也會寫寫投資和生活。

獨立技術專刊推播

訂閱技術電子報

有新文章發布時寄送到您的信箱,不發送垃圾信。