内存爆满一键缓存清理脚本快速恢复站点

服务器内存被占满,网站打开慢得像蜗牛,甚至直接报 502 或连接超时——这个问题很多站长都遇到过。
原因往往是系统缓存(如页面缓存、目录项缓存)积累过多,或者某些进程异常吃内存。
本文提供一套安全的一键缓存清理脚本,适合 CentOS 7/8、Ubuntu 18+ 等主流 Linux 系统,包含宝塔面板环境,零基础也能直接照做。

准备:确认内存状态与连接方式

在执行清理前,先确认两点:

  1. 你有服务器的 SSH 权限(或宝塔面板的终端)。如果没打开 SSH,直接用宝塔面板的“文件”模块也可以创建脚本,但推荐用终端。
  2. 当前内存占用确实过高。登录后执行以下命令查看:
   free -h

重点关注“available”列,如果低于 200MB 且网站卡顿,就值得清理。
同时运行 top 看有没有异常进程(如挖矿程序),如果有,先杀进程,再清理缓存。

创建一键缓存清理脚本

新建一个脚本文件,比如 clean_cache.sh,复制以下内容:

#!/bin/bash
# 内存缓存清理脚本 - 适用于生产环境
# 注意:不会清理正在运行的进程占用的内存

# 同步磁盘数据,防止数据丢失
echo "Syncing disks..."
sync
sync
sync

# 清理 page cache、dentries 和 inodes
echo "Dropping caches..."
echo 3 > /proc/sys/vm/drop_caches

# 重置 swap(如果开启了 swap,可选)
# swapoff -a && swapon -a

echo "Cache dropped successfully. Current memory:"
free -h

保存后赋予执行权限:

chmod +x clean_cache.sh
重点:echo 3 会清理 pagecache、dentries 和 inodes,这是最彻底的缓存清理方式。如果只清理 pagecache,可以改成 echo 1。对于绝大多数网站、数据库场景,echo 3 是安全的,不影响运行的程序。

执行脚本与常见报错处理

运行脚本:

sudo ./clean_cache.sh

如果提示 Permission denied,先切换到 root 或加 sudo
如果提示 /proc/sys/vm/drop_caches 只读,检查内核参数:

sysctl vm.drop_caches

确认值为 0 或 1,直接运行脚本即可。

常见问题:

  • 清理后内存变化不大? 说明内存主要被进程占用(如 MySQL、PHP-FPM),不是缓存占满。这时应检查进程,重启或优化。
  • 清理后网站短暂变慢? 因为缓存被清空,数据库查询需要重新缓存,几秒后恢复,属于正常现象。

避坑指南:别让脚本变成“催命符”

  1. 不要在生产业务高峰期直接清理。如果站点流量大,建议在低峰期执行。
  2. 不要频繁执行。每次清理后系统重建缓存需要时间,每 5-10 分钟跑一次反而增加 IO 压力。一般内存占用超过 80% 且可用内存低于 300MB 时才需要。
  3. 宝塔面板用户注意:宝塔自带“内存释放”功能(在面板首页的“内存”旁边),本质上也是同样的操作,可以直接使用。如果手动跑脚本,记得先关闭面板的自动释放,避免冲突。
  4. 如果服务器内存经常爆满,说明缓存只是表象,根本原因可能是 PHP 进程太多、MySQL 内存分配不合理、或者安装了过多插件。建议后续检查 ps aux --sort=-%mem 找出内存大户。

效果验证:前后对比看结果

执行脚本后再次运行 free -h,观察“available”列是否明显增加(通常能增长几百 MB 到 1-2GB)。
同时用浏览器访问网站,确认页面加载速度恢复。
也可以用 vmstat 1 3 观察 swap 使用情况。
如果之前 swap used 很高,清理后应该下降。

如果清理后内存依然很快占满,建议继续排查是否存在内存泄漏或恶意进程。本站也有《Linux内存占用过高排查教程》可对照操作。

高频问题解答

Q:清理缓存会导致数据库数据丢失吗?
不会。缓存只是磁盘数据的副本,不会影响 MySQL、Redis、文件内容。

Q:脚本需要开机自启吗?
不需要。缓存清理是临时手段,不能依赖它解决根本问题。检查系统日志 dmesg | tail -20 看看是否有 OOM(内存溢出)记录。

Q:Windows 服务器怎么办?
本文针对 Linux。Windows 可使用任务管理器结束非必要进程,或重启服务。

以上就是内存爆满一键缓存清理脚本的完整教程。
建议先按步骤完整执行一次,再根据自己环境调整。
如果遇到任何异常,优先回看避坑和高频问题部分,大部分情况都能自行解决。

分享到:
上一篇
批量清理网站垃圾图片释放磁盘存储空间的完整步骤
下一篇
数据库缺失索引批量添加提升检索速度
1
系统公告

机房迁移升级通知

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