在 CentOS(以及多数 Linux 发行版)里,“缓存”通常指 系统内存缓存(Page Cache / Buffer)、DNS 缓存、YUM/DNF 缓存、应用层缓存(如 Nginx、Redis) 等。下面按常见场景给你一套排查思路和命令。
free -h
或
top
关注:
buff/cache:系统缓存available:真正可用内存cat /proc/meminfo
重点关注:
CachedBuffersDirty(未写回磁盘的缓存)lsof | grep deleted
可发现“已删除但仍被进程占用”的文件。
sudo yum install -y f_incore # 或自行使用 vmtouch
vmtouch -v /path
sync
echo 3 > /proc/sys/vm/drop_caches
⚠️ 生产环境慎用,会影响性能。
CentOS 7/8 常见:
systemd-resolveddnsmasqnscd查看:
ps aux | grep -E "systemd-resolved|dnsmasq|nscd"
# systemd-resolved
systemd-resolve --flush-caches
# nscd
nscd -i hosts
# dnsmasq
systemctl restart dnsmasq
ls /var/cache/yum
# 或
ls /var/cache/dnf
yum clean all
# 或
dnf clean all
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=xxx:10m;
清理:
rm -rf /var/cache/nginx/*
redis-cli
> info memory
> keys *
> flushall # 慎用
cat /proc/sys/vm/dirty_ratio
cat /proc/sys/vm/dirty_background_ratio
iostat -x 1
高 %util + 高 await 常与缓存写回有关。
free -h → buff/cachelsof | grep deleted如果你能具体说一下:
我可以给你更精准的排查命令。