温馨提示×

centos缓存怎么诊断

小樊
46
2026-10-26 05:36:55
栏目: 智能运维

在 CentOS(以及一般 Linux 系统)里,“缓存”通常包含几类:page cache / buffer cache(文件系统缓存)、应用层缓存(如 Redis、Nginx)、DNS 缓存、yum/dnf 缓存等。下面按常见诊断场景给你一个实用清单。


一、系统级缓存(PageCache / Buffer)

1. 查看内存与缓存占用

free -h

或

cat /proc/meminfo

重点关注:

  • Cached:文件缓存
  • Buffers:块设备缓存
  • Available:真正可用内存

2. 实时观察缓存变化

vmstat 1

看:

  • cache
  • buff
  • si/so(swap 进出,异常说明内存压力)

3. 查看哪些文件被缓存(高级)

yum install perf
perf top

或

slabtop

看内核对象缓存(如 dentry、inode)

4. 手动释放缓存(仅排查用,不建议生产随便用)

sync
echo 3 > /proc/sys/vm/drop_caches

二、磁盘 I/O 与缓存命中

1. 看 I/O 是否走缓存

iostat -x 1
  • r/s, w/s
  • await, %util

2. 跟踪某个进程的 I/O

iotop

确认是否频繁读盘(缓存未命中)


三、应用层缓存诊断

Nginx 缓存

grep proxy_cache /etc/nginx/nginx.conf

检查:

  • proxy_cache_path
  • proxy_cache_valid
  • X-Cache 响应头(HIT / MISS)

Redis 缓存

redis-cli info memory
redis-cli info stats

重点:

  • keyspace_hits / misses
  • used_memory
  • evicted_keys

系统 DNS 缓存

CentOS 7/8 常用:

systemd-resolve --statistics

或

systemctl status dnsmasq

四、YUM / DNF 缓存

查看缓存

yum clean all
yum makecache

或

dnf clean all
dnf makecache

五、常见“缓存问题”判断思路

✅ 内存高但系统不卡
→ 正常,Linux 会利用空闲内存做缓存

✅ 频繁 swap
→ 缓存过多或内存不足

✅ 读磁盘很慢但 CPU 闲
→ 缓存未命中

✅ 服务返回旧数据
→ 应用层缓存未失效


六、如果你能补充这些信息,我可以更精确帮你

  • CentOS 版本(6 / 7 / 8 / Stream)
  • 遇到什么问题(慢?内存爆?数据不对?)
  • 是否是某类服务(Web / DB / 文件服务)

我可以给你针对性的命令或排查脚本。

0 踩