Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> Linux 教學

Linux 清理內存與 Cache 方法:/proc/sys/vm/drop_caches 實戰與參數調優

編輯:Linux 教學

頻繁文件訪問導致 Cache 佔用大量內存,影響應用分配。本文介紹 sync + drop_caches 手動釋放流程、三級釋放模式、sysctl 參數永久調優策略及生產環境注意事項。

手動釋放流程

# 1. 將臟頁寫回磁盤(關鍵步驟)
sync
# 2. 釋放 Cache
echo 3 > /proc/sys/vm/drop_caches

三級釋放模式

值釋放內容適用場景
1PageCache(頁面緩存)僅釋放文件數據緩存
2dentries + inodes(目錄項 + 索引節點)釋放文件系統元數據緩存
3PageCache + dentries + inodes徹底釋放(最常用)

sysctl 永久調優參數 (/etc/sysctl.conf)

vm.dirty_ratio = 10
vm.dirty_background_ratio = 5
vm.dirty_writeback_centisecs = 100
vm.dirty_expire_centisecs = 3000
vm.swappiness = 60
vm.vfs_cache_pressure = 100
vm.overcommit_memory = 0
vm.lowmem_reserve_ratio = 32 32 8

參數詳細解讀

生產環境最佳實踐

  • 不建議定時腳本釋放:Cache 有益於性能,頻繁釋放反而增加 I/O
  • 調優核心參數:根據業務類型(數據庫/文件服務器/Web)調整 dirty_* 與 swappiness
  • 監控指標:關注 Cached、Buffers、SwapUsed、PageIn/Out 趨勢
  • 應用層優化:數據庫配置 innodb_buffer_pool_size、JVM -Xmx 限制堆內存

驗證命令

free -h              # 觀察 available/cached 變化
cat /proc/meminfo    # 詳細內存分佈
sysctl -a | grep vm  # 查看當前 vm 參數
Copyright © Windows教程網 All Rights Reserved
參數默認值推薦調優方向說明
dirty_ratio20%5-15%臟頁佔比達到此值觸發同步寫回
dirty_background_ratio10%3-10%後台寫回線程啟動閾值
dirty_writeback_centisecs500100-1000後台寫回檢查間隔(厘秒)
dirty_expire_centisecs30001000-5000臟頁超時強制寫回時間
swappiness6010-60傾向換出匿名頁 vs 文件頁(數值越大越傾向 Swap)
vfs_cache_pressure10050-200傾向回收 dentry/inode 緩存(數值越大越激進)
overcommit_memory00/1/20=啟發式,1=總是允許,2=嚴格檢查