全部產品
Search
文件中心

Alibaba Cloud Linux:調用drop_caches介面清理Page Cache

更新時間:Oct 11, 2024

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
  • 釋放dentriesinodes

    • 調用drop_caches介面釋放dentriesinodes

      sudo sh -c 'echo 2 > /proc/sys/vm/drop_caches'
    • 通過sysctl命令釋放dentriesinodes

      sudo sysctl -w vm.drop_caches=2
  • 釋放Page Cache、dentriesinodes

    • 調用drop_caches介面釋放Page Cache、dentriesinodes

      sudo sh -c 'echo 3 > /proc/sys/vm/drop_caches'
    • 通過sysctl命令釋放Page Cache、dentriesinodes

      sudo sysctl -w vm.drop_caches=3