内存爆满一键清理缓存释放资源脚本

为什么服务器内存会爆满?认识 PageCache 与 Buffer

很多新手看到 free -h 输出中 used 接近 100% 就慌了,其实大部分是被 PageCache(页面缓存)buffer(缓冲区) 占用的。
Linux 会尽可能把空闲内存用来缓存读写过的文件,加速后续访问。
当内存紧张时,系统会自动回收这些缓存,但某些场景下(比如刚读写大量小文件),缓存会长时间积累,导致可用内存过低、应用响应变慢。
这时我们可以手动执行清理脚本,释放被缓存占住的内存,让系统恢复“呼吸”。

编写一键清理脚本:从基础命令到完整脚本

清理缓存的核心是 Linux 内核提供的接口文件 /proc/sys/vm/drop_caches,写入不同数字能释放不同层级的缓存:

  • 1:释放页缓存
  • 2:释放目录项和索引节点缓存
  • 3:释放全部缓存(PageCache、dentries 和 inodes)

推荐使用 echo 3 之前先执行 sync 强制把未写入磁盘的数据刷进去,避免数据丢失。

步骤 1:手动测试清理效果

sync && echo 3 | sudo tee /proc/sys/vm/drop_caches

运行成功后查看内存变化:

free -h

步骤 2:把命令写成可复用的脚本

切换到 root 或具有 sudo 权限的用户,创建脚本文件:

sudo nano /usr/local/bin/cleanmem.sh

粘贴以下内容:

#!/bin/bash
# 一键清理缓存释放内存脚本
sync
echo 3 > /proc/sys/vm/drop_caches
echo "缓存已清理,当前内存使用情况:"
free -h

保存后赋予执行权限:

sudo chmod +x /usr/local/bin/cleanmem.sh

以后只要执行 sudo /usr/local/bin/cleanmem.sh 就能一键释放。

避坑提醒:什么时候不该执行清理?

虽然清理缓存本身安全,但以下情况请谨慎操作

  • 数据库(MySQL、PostgreSQL)或 Web 应用正在密集写入数据:强制释放缓存可能导致后续读取性能短暂下降,直到重新缓存。建议优先用 sync 刷盘,再考虑清理。
  • 不要设置定时任务(crontab)频繁执行:每天执行 1-2 次足够,频繁清理会让缓存失去加速意义,反而加重磁盘 I/O。
  • 清理后内存不会降到极低值:系统会立即把刚释放的内存重新用于缓存或应用,使用 free -h 看到 available 值大幅上升就说明成功。

运行脚本并验证清理效果

执行脚本:

sudo /usr/local/bin/cleanmem.sh

输出示例:

缓存已清理,当前内存使用情况:
              total        used        free      shared  buff/cache   available
Mem:           3.8G        1.2G        1.0G        120M        1.6G        2.3G

注意 used 值下降available 值上升
你也可以用 htopvmstat 1 观察负载变化。

常见问题解答(FAQ)

Q1:清理后内存很快又满了,怎么办?
这是正常现象,只要 available 剩余多就不用担心。如果确实想降低缓存占用,可以检查是否有程序长期占用大量缓存(如大型日志处理),考虑优化应用逻辑或增加物理内存。

Q2:脚本需要 root 权限吗?
写入 /proc/sys/vm/drop_caches 需要 root 或 sudo 提权,否则会提示权限拒绝。建议用 sudo 执行脚本。

Q3:能用 echo 2 代替 echo 3 吗?
可以,但只释放目录和 inode 缓存,效果不如 3 全面。日常场景推荐直接用 3

写在最后

当你遇到内存爆满导致网站或服务响应缓慢时,一键清理缓存脚本能快速帮你腾出可用内存。
但请把脚本当作“紧急工具”而非常规手段——保持合理的系统资源配置才是根本。
如果你觉得手动执行脚本还不够便捷,可以把它加入每天的 systemd timer 或简单 cron 作业,仅在低频下运行。
遇到异常时优先回顾避坑部分,多观察 available 指标而非 used 数值。

分享到:
上一篇
批量清理网站垃圾图片释放磁盘空间
下一篇
索引缺失批量添加优化商品检索速度完整指南
1
系统公告

机房迁移升级通知

尊敬的用户: IP 段 103.23.148.x、156.224.29.x 原香港一区线路波动、攻击频繁,平台定于 7 月 5 日凌晨分批迁移至香港 GIA 机房,硬件升级 AMD 铂金机型。 迁移均在凌晨操作,最大程度降低业务影响,迁移期间服务器临时关机; 升级后配置不降低、费用不涨价,数据默认同步迁移; 迁移后 IP 全部更换,请及时修改域名解析、防火墙白名单; 建议提前备份重要数据,有问题可联系在线客服。 感谢理解与支持! 泽御云科技 2026.06.30
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意