温馨提示×

如何清理Linux缓存内存

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

在 Linux 中,“缓存内存”通常指的是 Page Cache / Buffer Cache(用于加速文件读写),而不是程序出错占用的内存。这些内存在系统需要时会被自动释放,一般情况下不需要手动清理

如果你确实需要手动清理(如性能测试、排查问题),可以按下面方法操作。


一、查看缓存使用情况

free -h

cat /proc/meminfo

关注:

  • Buff/Cache
  • Available

二、手动清理缓存(推荐方式)

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 的作用是先把脏数据写回磁盘,避免数据丢失。


三、一键命令写法

sudo sh -c 'sync; echo 3 > /proc/sys/vm/drop_caches'

四、临时 & 永久设置(不推荐随意改)

临时调整(立即生效)

sudo sysctl vm.drop_caches=3

永久配置(一般不推荐)

sudo vim /etc/sysctl.conf

添加:

vm.drop_caches=3

然后:

sudo sysctl -p

⚠️ 生产环境不建议开机自动清缓存。


五、什么时候该清缓存?

✅ 适合:

  • 性能基准测试
  • 排查 IO 问题
  • 教学 / 演示

❌ 不建议:

  • 觉得“内存占用高”就清
  • 生产服务器频繁清理

六、如果你指的是“进程占用内存”

如果是某个程序占太多内存,应:

top

ps aux --sort=-%mem

再决定是否 kill 进程。


如果你愿意,可以告诉我:

  • 服务器 / 桌面 / 容器
  • 缓存高是否影响了性能

我可以给你更合适的建议。

0