温馨提示×

怎样释放linux缓存

小樊
45
2026-10-09 12:07:19
栏目: 智能运维

在 Linux 中,“释放缓存”通常指释放 页缓存(page cache)、目录项缓存(dentries)和 inode 缓存。这些缓存由系统自动管理,一般不建议手动释放,因为 Linux 会按需回收,手动释放可能导致短期性能下降。

如果你确实有必要(如测试、排障、释放内存),可以按以下方式操作。


一、查看当前缓存使用情况

free -h

或

cat /proc/meminfo

关注:

  • Buffers
  • Cached
  • SReclaimable

二、手动释放 Linux 缓存(标准方法)

1️⃣ 释放所有缓存(最常用)

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

说明:

  • sync:先写回磁盘,防止数据丢失
  • echo 3:释放 pagecache + dentries + inodes

2️⃣ 只释放页缓存(page cache)

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

3️⃣ 释放目录项和 inode 缓存

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

三、使用 sysctl(等效方式)

sysctl vm.drop_caches=3

四、释放 slab 缓存(内核对象缓存)

echo 2 > /proc/sys/vm/drop_caches

或查看:

cat /proc/slabinfo

五、注意事项(非常重要)

✅ 不会释放正在使用的内存
✅ 不会影响运行中的进程
❌ 不建议生产环境频繁使用
❌ 不能“优化性能”,只是清空缓存

Linux 设计原则:

空闲内存 = 浪费内存
缓存会自动在内存紧张时回收


六、如果你只是想“看起来内存更多”

那是正常的,不需要处理。


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

  • 是服务器还是测试机?
  • 为什么要释放缓存(OOM?性能?测试?)

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

0 踩