温馨提示×

Linux清理缓存有什么方法

小樊
45
2026-10-05 09:09:08
栏目: 智能运维

在 Linux 系统中,“清理缓存”通常指释放 PageCache、dentries 和 inodes 等内核缓存(用于提升性能的磁盘缓存)。下面是常见、安全的方法。


一、查看内存和缓存占用

free -h

或

cat /proc/meminfo

重点关注:

  • Buffers
  • Cached
  • SReclaimable

二、手动清理系统缓存(最常用)

1️⃣ 清理 PageCache

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

2️⃣ 清理 dentries 和 inodes

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

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

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

✅ 推荐顺序:先 sync,再 drop_caches,防止数据丢失。


三、使用 sysctl 方式(等价)

sudo sysctl vm.drop_caches=3

四、清理特定缓存

1️⃣ 清理 apt 缓存(Debian / Ubuntu)

sudo apt clean
sudo apt autoclean

2️⃣ 清理 yum / dnf 缓存(CentOS / RHEL)

sudo yum clean all
# 或
sudo dnf clean all

3️⃣ 清理 journal 日志

sudo journalctl --vacuum-size=100M

4️⃣ 清理 Docker 缓存

docker system prune -a

5️⃣ 清理用户缓存目录

rm -rf ~/.cache/*

五、是否建议频繁清理?

❌ 不建议频繁手动清理

  • 缓存是为了提高性能
  • 系统会在内存紧张时自动回收
  • 强制清理可能导致短时间性能下降

✅ 适用场景

  • 性能测试前后
  • 排查内存问题
  • 释放内存验证效果

六、自动回收(推荐做法)

Linux 默认已启用:

cat /proc/sys/vm/swappiness

一般服务器建议:

sudo sysctl -w vm.swappiness=10

如果你是想:

  • 清理 内存
  • 清理 磁盘
  • 清理 某个软件缓存
  • 服务器/容器环境

可以告诉我具体场景,我可以给更精准的方案。

0 踩