当前位置: 首页 > news >正文

linux清理缓存命令“echo 3 > /proc/sys/vm/drop_caches”

命令:

echo 3 > /proc/sys/vm/drop_caches

是 Linux 系统中手动释放页缓存(Page Cache)的一种方式。下面详细解释其作用、原理和使用注意事项。

🔍 一、作用:清空内核的缓存(非应用程序内存)

该命令会通知 Linux 内核释放以下三类缓存:
缓存类型 对应值 说明
Page Cache(文件缓存) 1 缓存从磁盘读取的文件数据(如你读过 /var/log/messages,它可能还在内存里)

Dentries and Inodes(目录项和 inode 缓存) 2 缓存文件路径、元信息,加速文件查找

两者都清 3 1 + 2 = 3 → 清除所有上述缓存

✅ 所以 echo 3 表示:清空 Page Cache + Dentry/Inode 缓存

⚙️ 二、原理简述

  • Linux 会利用空闲内存缓存磁盘数据(“免费缓存”),提升 I/O 性能。
  • 这些缓存是 可回收的:当应用程序需要内存时,内核会自动释放它们。
  • drop_caches 是人工强制提前释放这些缓存,不会杀死任何进程,也不会释放应用程序实际使用的内存(RSS)。

🛑 三、重要注意事项

❌ 1. 这不是“释放内存给应用”的万能药

  • 如果系统内存充足,这些缓存本来就是“闲置但有用”的。
  • 强行清除后,下次读相同文件会变慢(因为要重新从磁盘读)。
  • 对解决 OOM(内存不足)基本无效——真正占内存的是应用本身,不是缓存。

✅ 2. 适用场景

  • 测试 I/O 性能:排除缓存干扰,测真实磁盘速度。
  • 调试内存使用:想看“去掉缓存后,系统到底用了多少内存”。
  • 临时缓解 df -h 显示异常(极少数情况下,已删除但被进程占用的文件仍占空间,但 drop_caches 不能解决这个问题!那是 lsof +L1 的事)。

⚠️ 3. 需要 root 权限

  • 只有 root 或 sudo 用户才能写 /proc/sys/vm/drop_caches。

🔒 4. 安全但不推荐在生产环境随意使用

  • 虽然不会导致数据丢失,但会暂时降低系统性能(缓存失效)。

📊 四、如何观察效果?

执行前后对比内存使用:

查看缓存前
free -h

清空缓存
sudo sync && echo 3 | sudo tee /proc/sys/vm/drop_caches

再次查看
free -h

你会看到:

  • buff/cache 行显著减少
  • available 内存可能变化不大(因为缓存本来就算作“可用”)

💡 建议先执行 sync,确保脏页写入磁盘,避免数据风险。

🆚 与其他值对比

echo 1 > /proc/sys/vm/drop_caches # 仅清 Page Cache(文件内容缓存)
echo 2 > /proc/sys/vm/drop_caches # 仅清 dentries 和 inodes(路径/元数据缓存)
echo 3 > /proc/sys/vm/drop_caches # 全部清空(最常用)

✅ 总结
项目 说明
命令作用 手动清空 Linux 内核的文件系统缓存

是否释放应用内存? ❌ 否,只释放可回收的缓存

是否危险? ⚠️ 安全,但会降低短期 I/O 性能

典型用途 性能测试、调试、教学演示

生产建议 除非明确需要,否则不要定期执行

📌 你的场景(RabbitMQ 因磁盘满卡住)不需要这个命令——你真正需要的是 删除日志文件,而不是清缓存。drop_caches 对 df -h 显示的磁盘使用率 毫无影响(它只影响内存,不影响磁盘)。

如有其他系统调优问题,欢迎继续提问!

http://www.jsqmd.com/news/249681/

相关文章:

  • 蓝牙学习之Provision(4)
  • RabbitMQ消息堆积问题处理
  • 手把手教你用7款AI写论文工具:效率飙升100%,告别拖延
  • AI应用架构师必看:智能质量控制平台为什么90%的项目死在数据层?
  • USB 赋能 + AI 降噪双 buff!这款语音处理模组,让全场景沟通清晰到底
  • CMDB:从纳管到“活用”,数据驱动运维
  • 高性能多模音频处理模组A59U详解
  • 高保真光学仿真解决方案:基于多物理场耦合与混合数据驱动的产品数字孪生构建
  • 旧 Win7 转 Win11/10 文件传输难题?2 款实用工具快速搞定
  • 导师推荐8个AI论文工具,MBA高效写作必备!
  • 轻松备份策略全解析:备份方式 + 空间管理 + 配置教程
  • 昊衡科技 多芯光纤三维形状传感系统,精准感知!
  • 高效运维新利器-裸金属自动化重装系统
  • 【K8S分配率】Shell脚本计算Kubernetes集群CPU和内存总分配率
  • 项目做多了才明白:时间同步真的不能凑合
  • L3牌照下发,固态电池上车!2026中国汽车“奇点”时刻:是终点,更是新起点。
  • 我国团队攻克 SGLT-2 抑制剂合成痛点,降糖药生产更高效 | 乐研试剂
  • 破局“不可成药”:戊二酰亚胺化学重塑CRBN靶向降解新突破 | 乐研试剂
  • 从0开始玩raspberry pi PICO RP2040
  • GitHub 上 10 个令人惊艳的 Agent 开发平台
  • Linux磁盘管理
  • 华邦4Gbit高性能SPI NAND闪存:W25N04KVZEIR
  • 华邦2Gb SLC NAND闪存,工业级首选:W25N02KVZEIR
  • 飞书多维表格真的很强!
  • 我常用的一个爬虫利器,自动采集视频数据
  • 深入解析TCP/IP协议栈:从原理到优化
  • 告别“白菜价”?2026车市大洗牌:L3落地、国补退坡,这“三类车”将成赢家!
  • 玩转Linux命令:创意组合大赛
  • 选择电子签章前,必须关心的6件事
  • 国产替代 Snyk/Black Duck(黑鸭)的国内代码安全工具实测与选型清单