在 CentOS(以及大多数 Linux 系统)里,常说的“缓存失效”一般指的是 page cache / buffer cache 被回收,或者 DNS 缓存、yum 缓存、应用层缓存失效。不同场景原因不同,下面按常见情况说明。
Linux 的缓存(page cache)本来就是按需使用、可被回收的,不是“永久有效”。
这是最常见原因。
kswapd 回收 page cache查看:
free -h
cat /proc/meminfo | grep -E 'MemFree|Cached'
你或脚本执行过:
echo 1 > /proc/sys/vm/drop_caches
echo 2 > /proc/sys/vm/drop_caches
echo 3 > /proc/sys/vm/drop_caches
这会立即“让缓存失效”。
应用直接读写磁盘:
这些 不会走 page cache,看起来像“缓存没用”。
cat /proc/sys/vm/min_free_kbytes
cat /proc/sys/vm/vfs_cache_pressure
vfs_cache_pressure 越大,inode/dentry 缓存越容易被回收CentOS 默认 没有系统级 DNS 缓存(除非装了 nscd / systemd-resolved / dnsmasq)
nscd 被停止systemctl status nscd
/etc/resolv.conf 被 NetworkManager 重写yum clean all
/etc/yum.conf
metadata_expire=90m
仓库 push 新 repodata 后旧缓存失效
proxy_cache 超时你可以补充以下信息,我可以更精确判断:
如果你愿意,可以直接把:
free -h
uptime
systemctl status nscd
的输出贴出来,我可以帮你具体分析。