本文中含有需要您注意的重要提示信息,忽略該信息可能對您的業務造成影響,請務必仔細閱讀。
Linux系統及其用戶進程運行過程中會產生Page Cache(文件緩存),隨著運行時間的增加,Page Cache的占比逐漸上升,進而占用更多的系統資源。這可能導致對性能敏感型業務出現性能抖動,甚至引發部分任務出現OOM(Out of Memory)現象。在需要釋放大量內存的業務場景中,可以通過/proc/sys/vm/drop_caches
接口來釋放緩存。
操作步驟
警告
由于drop_caches
回收內存刪除了系統中的Page Cache及所需的dentries(目錄項)和inodes(索引節點),可能導致在進行磁盤IO操作等過程中出現性能下降,請根據實際需求謹慎進行內存回收。
以下操作僅會釋放未被使用的對象,內存中的臟頁對象將繼續被使用,直至其寫出到磁盤前無法釋放。如需釋放臟頁對象的內存,請在使用drop_caches接口清理Page Cache之前執行sync
命令,將內存中的臟頁面寫出到磁盤,這些操作通常能夠釋放更多的內存。
釋放頁面緩存。
調用
drop_caches
接口釋放Page Cache。sudo sh -c 'echo 1 > /proc/sys/vm/drop_caches'
通過
sysctl
命令釋放Page Cache。sudo sysctl -w vm.drop_caches=1
釋放
dentries
和inodes
。調用
drop_caches
接口釋放dentries
和inodes
。sudo sh -c 'echo 2 > /proc/sys/vm/drop_caches'
通過
sysctl
命令釋放dentries
和inodes
。sudo sysctl -w vm.drop_caches=2
釋放Page Cache、
dentries
和inodes
。調用
drop_caches
接口釋放Page Cache、dentries
和inodes
。sudo sh -c 'echo 3 > /proc/sys/vm/drop_caches'
通過
sysctl
命令釋放Page Cache、dentries
和inodes
。sudo sysctl -w vm.drop_caches=3
文檔內容是否對您有幫助?