在 CentOS(以及大多数 Linux 发行版)中,“缓存过大”通常不是问题,而是系统正常、高效工作的表现。下面分几点说明原因,以及什么情况下才需要关注。
你看到的“缓存过大”,一般是指:
free -h
输出中的:
total used free shared buff/cache available
Mem: 16G 2.3G 1.2G 200M 12G 13G
重点在 buff/cache:
✅ 这些内存是“可回收的”,不是被真正“占用”
Linux 设计理念:
空闲内存 = 浪费内存
所以:
只要 available 内存足够,就没问题。
以下场景会迅速增加 cache:
/var/log)CentOS 不会主动清缓存,除非:
available 很少free -h
cat /proc/meminfo
关注:
MemAvailable
ps aux --sort=-%mem | head
sync
echo 3 > /proc/sys/vm/drop_caches
⚠️ 仅用于测试或排障,不要写定时任务
cat /proc/sys/vm/swappiness
默认 30,可设为 10:
sysctl vm.swappiness=10
innodb_buffer_pool_size)CentOS 缓存大 ≠ 内存泄漏 ≠ 故障
只要available内存充足,系统稳定,就是健康状态。
如果你愿意,可以贴一下:
free -htop / ps 内存占用我可以帮你具体判断是不是“真问题”。