free -h
命令以易讀格式顯示內存使用情況,重點關注“Buffers”(緩沖區緩存)和“Cached”(頁面緩存)列,了解緩存占用的內存大小。也可通過cat /proc/meminfo
查看更詳細的內存統計信息(如Buffers
、Cached
、MemAvailable
等指標)。vmstat 1
命令每秒刷新一次虛擬內存統計信息,包含“buffers”和“cache”的實時使用量;dstat -m
則提供更直觀的內存、緩存使用趨勢。lsof | grep deleted
命令可列出已被刪除但仍被進程占用的文件(這些文件可能被緩存),幫助排查文件緩存泄漏問題;sync
命令用于強制將緩存中的數據寫入磁盤,避免數據丟失。sysctl -a | grep cache
命令查看所有與緩存相關的內核參數(如vm.dirty_ratio
、vm.dirty_background_ratio
等),了解當前緩存策略配置。perf
工具監控緩存命中率,例如perf stat -e L1-dcache-load-misses,L1-dcache-load-hits,L1-icache-load-misses,L1-icache-load-hits
可統計L1數據緩存和指令緩存的缺失率與命中率,評估緩存效率。htop
或atop
工具實時查看CPU緩存使用情況(如L1/L2/L3緩存命中率),直觀了解系統資源瓶頸。sync # 強制將緩存數據寫入磁盤
echo 3 > /proc/sys/vm/drop_caches # 清除頁面緩存、目錄項和inode緩存
注意:生產環境中頻繁清理緩存可能影響性能,建議在低峰期操作。/proc/sys/vm/dirty_ratio
(臟頁占比閾值,默認約20%)和/proc/sys/vm/dirty_background_ratio
(后臺寫回臟頁的閾值,默認約10%),降低緩存占用:echo 10 > /proc/sys/vm/dirty_ratio
echo 5 > /proc/sys/vm/dirty_background_ratio
為使配置永久生效,可將上述命令添加到/etc/sysctl.conf
文件中。sudo yum clean all
清除YUM的臨時文件和舊版本軟件包。sudo nginx -s reload
重新加載配置,清理代理緩存。redis-cli flushall
清除所有緩存數據(需確認業務允許)。/var/log/messages
、/var/log/syslog
或應用特定日志(如/var/log/httpd/error_log
),查找與緩存相關的錯誤或警告信息(如“Out of memory”、“Cache write failed”)。ps
、top
或systemctl
命令檢查緩存相關進程(如nginx
、redis
)的運行狀態,確認服務是否正常啟動。nginx.conf
、Redis的redis.conf
)中的緩存參數(如max_size
、inactive
),確保配置合理。以上方法覆蓋了CentOS緩存調試的全流程,從監控、分析到清理、調整,可根據具體問題選擇對應工具和步驟。操作前建議備份重要數據,避免誤操作影響系統穩定性。