阿里云国际代理商:ECS 内存 或 磁盘爆满怎么清理?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
本文由阿里云国际云服务器代理商:云枢国际yunshuguoji撰写。
模块 A:磁盘空间爆满 排查 + 清理步骤
步骤 1:确认磁盘占用,定位满盘分区
bash
df -h
观察Use%=100%的分区(一般是根分区 /)
步骤 2:逐级查找占用空间最大目录
bash
查看根目录下文件夹大小,从大到小排序
sudo du -sh /* 2>/dev/null | sort -rh | head -15
找到大目录后,进入目录再次执行命令,层层定位大文件。
步骤 3:优先安全清理(无业务风险,优先执行)
清理系统临时目录
bash
sudo rm -rf /tmp/ /var/tmp/
清理系统 journal 系统日志
bash
sudo journalctl --vacuum-size=200M
Amazon Linux/CentOS 清理 dnf/yum 缓存
bash
sudo dnf clean all
Ubuntu 清理 apt 缓存
bash
sudo apt clean && apt autoremove -y
Nginx / 应用过期日志(确认日志无用再清理)
bash
删除30天之前轮转日志
find /var/log/nginx -name ".log." -mtime +30 -delete
使用 Docker 场景:清理无用镜像、容器
bash
docker system prune
步骤 4:特殊疑难场景:删除文件空间不释放
现象:删掉大文件,df 查看空间依旧满;原因:文件被进程持续占用。
bash
sudo lsof | grep deleted
找到对应进程 PID,优先重启对应业务服务,不要直接 kill 核心业务进程。
步骤 5:长期根治方案
配置 logrotate 自动轮转日志;定期清理过期备份;必要时控制台扩容云盘。
模块 B:内存爆满 排查 + 缓解步骤
步骤 1:查看整体内存状态
bash
free -h
重点看 available 可用内存、Swap 交换分区占用。Swap 持续上涨 = 内存严重不足。
步骤 2:找出占用内存最高进程
bash
按内存从高到低排序
ps aux --sort -rss | head -12
或者实时监控
bash
top
按下大写M,按内存排序
步骤 3:应急缓解方案
临时释放页缓存(业务低谷执行,高峰慎用)
bash
sync; echo 3 > /proc/sys/vm/drop_caches
确认异常进程:
测试进程、僵尸进程:正常停止或 kill
业务程序持续内存占用:排查代码内存泄漏、调整 JVM / 应用内存参数
步骤 4:长期根治
优化程序内存配置;增加 ECS 实例内存规格;增加 Swap 分区作为缓冲。