温馨提示×

ubuntu缓存为何满 了

小樊
38
2026-09-25 04:07:39
栏目: 智能运维

在 Ubuntu 中“缓存满了”通常不是指传统意义上的“磁盘缓存把内存吃光导致问题”,而是系统用于加速文件读写的页缓存(Page Cache)占用了大量内存,或者你看到的“缓存”其实是某个具体目录/分区(如 /var/cache、apt 缓存、Docker 缓存等)空间占满。

下面分几种常见情况给你讲清楚:


一、如果是“内存中的缓存(buff/cache)满了”

你用 free -h 或 top 看到:

              total        used        free      shared  buff/cache   available
Mem:           16G         3.2G        1.1G        200M         11G        11G

其中 buff/cache 很大,这是正常现象。

原因

  • Linux 会尽量用空闲内存做文件缓存
  • 提高文件读写速度
  • 内存紧张时,内核会自动回收

结论

✅ 不是故障,不需要清理 ❌ 不要盲目执行 echo 3 > /proc/sys/vm/drop_caches


二、如果是“磁盘缓存目录满了”(/var/cache 等)

常见于:

  • apt 缓存
  • 系统日志
  • snap / docker

1️⃣ apt 缓存

du -sh /var/cache/apt

清理:

sudo apt clean
sudo apt autoclean

2️⃣ 系统日志

journalctl --disk-usage

清理:

sudo journalctl --vacuum-time=7d

3️⃣ Docker(很常见)

docker system df

清理:

docker system prune -a

三、如果是“/ 分区满了,但找不到大文件”

可能是:

  • 已删除文件仍被进程占用
sudo lsof +L1

重启相关服务即可释放。


四、如何确认“到底哪满了”

看磁盘

df -h

看目录占用

sudo du -h --max-depth=1 /

五、总结一句话

Ubuntu 的“缓存满”大多不是问题,而是 Linux 的正常机制;真正需要处理的,是 /var/cache、docker、日志等可清理缓存。

如果你愿意,可以把下面命令的输出发给我,我可以直接帮你判断是哪一种:

free -h
df -h
du -sh /var/cache/* 2>/dev/null

0 踩