0%
手動清除Linux記憶體快取
這篇介紹手動清除Linux記憶體快取。
前言
1 2 3 4 5 6
| 最近在Linux上執行將log打包成.tar.gz時 出現memory over 80%告警 -------------------------------------- Linux 中提供了 free 指令可以觀察系統中記憶體的使用情況, 觀察後發現跑完一次 .tar.gz 後被快取的記憶體多了不少, 且這些 cache 並不會隨著 process 的結束而馬上被清理掉。
|
指令
1 2 3 4 5 6 7 8 9 10
| Linux 有提供一個 proc file system 介面 /proc/sys/vm/drop_caches 可以強制 kernel 清理快取。 若有這樣的需求,我們只需要對這個 file 寫入 1~3 這三種控制碼其中一種, 對應的記憶體快取種類便會被強制清理。 -- 若寫入 1 會清除 pagecache:
若寫入 2 會清除 dentries 與 inodes:
若寫入 3 則有等同於 1+2 的效果,會清除 pagecache、dentries 及 inodes:
|