温馨提示×

centos缓存为什么失效

小樊
39
2026-10-05 15:46:17
栏目: 智能运维

在 CentOS(以及一般的 Linux 系统)中,“缓存失效”可以指多种不同的场景,具体要看你指的是哪一类缓存。下面按常见类型给你系统梳理一下可能原因和排查思路。


一、系统页缓存(Page Cache)失效

这是 Linux 文件系统的内存缓存(free 命令里的 cached)。

常见失效原因

  1. 内存不足(OOM 压力)
    • 系统内存紧张时,内核会回收 page cache
    • 表现:cache 突然下降,磁盘 IO 增加
  2. 手动清理缓存
    echo 3 > /proc/sys/vm/drop_caches
    
  3. 频繁大文件读写
    • 大文件会迅速占用并替换 cache
  4. swappiness 设置不合理
    • swappiness 过高可能导致内存回收更激进
    cat /proc/sys/vm/swappiness
    

排查

free -h
vmstat 1
sar -r 1
dmesg | grep -i oom

二、DNS 缓存失效(常见!)

CentOS 默认没有 DNS 缓存,除非你装了:

  • nscd
  • dnsmasq
  • systemd-resolved(CentOS 8+)

常见原因

  1. nscd 服务未运行
    systemctl status nscd
    
  2. nscd 配置中 TTL 太短
    cat /etc/nscd.conf
    
  3. DNS 服务器返回 TTL 小
  4. 重启网络或 systemd-resolved

排查

getent hosts example.com
systemctl status nscd

三、YUM / DNF 缓存失效

常见原因

  1. 执行了清理命令
    yum clean all
    
  2. 缓存目录被删
    /var/cache/yum
    
  3. 仓库 metadata 过期
    yum makecache
    

四、应用层缓存(如 Nginx / Redis / PHP)

Nginx

  • proxy_cache 被 Cache-Control: no-store
  • 缓存目录权限问题
  • 重启导致内存缓存清空

Redis

  • 达到 maxmemory
  • 键过期(TTL)
  • LRU 淘汰策略

五、你该如何进一步定位?

你可以补充以下信息,我可以更精准判断:

  1. 你说的是哪种缓存?(系统 / DNS / YUM / 应用)
  2. CentOS 版本(6 / 7 / 8 / Stream)
  3. 是通过什么现象发现“失效”的?
  4. 是否有相关日志或命令输出?

如果你愿意,直接把现象贴出来,我帮你一步步查。

0 踩