温馨提示×

linux缓存怎么清理

小樊
58
2026-09-24 21:08:30
栏目: 智能运维

在 Linux 中,“缓存”通常指 PageCache / dentries / inodes(文件系统缓存),由内核自动管理,一般不需要手动清理。但在某些场景(如测试、释放内存、 troubleshooting)可以手动清理。


一、查看缓存和内存占用

free -h

或

cat /proc/meminfo

关注:

  • Buffers
  • Cached
  • SReclaimable

二、手动清理缓存(通用方式)

1️⃣ 清理 PageCache(最常用)

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

2️⃣ 清理 dentries 和 inodes

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

3️⃣ 清理所有缓存(PageCache + dentries + inodes)

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

✅ sync 很重要,先把数据刷到磁盘,避免数据丢失


三、临时生效 vs 永久

临时(重启失效)

上面命令即可

永久(不推荐)

sysctl -w vm.drop_caches=3

⚠️ 不建议长期设置,会降低系统性能


四、清理某个程序的缓存(如 Redis / 数据库)

  • Redis:FLUSHALL
  • MySQL:重启或 RESET QUERY CACHE(老版本)
  • 应用缓存:看具体服务

五、swap 清理(不是缓存,但常一起问)

swapoff -a
swapon -a

⚠️ 会短暂影响性能,生产环境谨慎


六、什么时候“不要”清理

  • 系统运行正常
  • 内存没满
  • 有高 IO 负载

如果你能告诉我:

  • 是 服务器 / 桌面 / 容器
  • 想解决什么问题(卡顿?内存不足?测试?)

我可以给你更精准的建议。

0 踩