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缓存调试的全流程,从监控、分析到清理、调整,可根据具体问题选择对应工具和步骤。操作前建议备份重要数据,避免误操作影响系统稳定性。