当阿里云服务器(ECS)的系统盘空间不足时,可以采取以下几种方法来解决:
一、排查和清理磁盘空间(推荐先尝试)
在扩容前,建议先检查是否可以通过清理释放空间:
1. 查看磁盘使用情况
df -h
查看各分区使用率,确认是否真的空间不足。
2. 查找大文件或目录
du -sh /* 2>/dev/null | sort -hr | head -10
找出占用空间较大的目录。
3. 清理常见垃圾文件
-
清理系统日志:
# 清空日志(谨慎操作) > /var/log/messages > /var/log/secure # 或使用 journalctl 清理(systemd 系统) journalctl --vacuum-time=7d # 保留最近7天日志 -
清理 YUM 缓存(CentOS/RHEL):
yum clean all -
清理 APT 缓存(Ubuntu/Debian):
apt-get clean -
删除无用软件包或缓存:
yum autoremove # CentOS apt-get autoremove # Ubuntu -
清理临时文件:
rm -rf /tmp/* -
检查 Docker 容器日志或镜像(如使用 Docker):
docker system prune -a
二、扩容系统盘(根本解决方案)
如果清理后仍不够用,可对系统盘进行扩容。
⚠️ 注意:必须提前创建快照备份数据!
步骤如下:
1. 登录阿里云控制台
- 进入 ECS 控制台
- 找到目标实例 → 停止实例(部分配置变更需关机)
2. 扩容云盘
- 在实例详情页 → 「本实例云盘」→ 找到系统盘 → 点击「更多」→ 「变更云盘容量」
- 输入更大的容量(如从 40GB 扩到 60GB)
- 确认支付差价并提交
3. 启动实例并扩容文件系统
扩容云盘只是“物理”扩容,还需在操作系统内扩展分区和文件系统。
对于 Linux 系统(以 ext4/xfs 为例):
-
检查磁盘大小是否已更新:
fdisk -l查看
/dev/vda(或/dev/xvda)是否显示新容量。 -
扩展分区(若使用 GPT 分区表,建议使用
growpart):# 安装工具(如未安装) yum install cloud-utils-growpart -y # CentOS apt-get install cloud-guest-utils # Ubuntu # 扩展分区(假设是 /dev/vda1) growpart /dev/vda 1 -
扩展文件系统:
- 如果是 ext4 文件系统:
resize2fs /dev/vda1 - 如果是 xfs 文件系统:
xfs_growfs /
- 如果是 ext4 文件系统:
-
验证结果:
df -h查看系统盘是否已扩容成功。
三、其他优化建议
-
迁移数据到数据盘
- 购买一块新的数据盘,将日志、应用、数据库等迁移到数据盘。
- 系统盘只保留系统文件,避免再次爆满。
-
挂载 OSS 存储
- 使用
ossfs将阿里云 OSS 挂载为本地目录,存放静态资源或日志。
- 使用
-
设置日志轮转(logrotate)
- 防止日志无限增长:
# 编辑配置 vi /etc/logrotate.d/myapp
- 防止日志无限增长:
四、预防措施
- 初始购买时选择足够大的系统盘(建议至少 50GB 起步)。
- 定期监控磁盘使用(可通过云监控设置告警)。
- 使用脚本定期清理缓存和日志。
✅ 总结:
| 方法 | 是否推荐 | 说明 |
|---|---|---|
| 清理无用文件 | ✅ 推荐优先尝试 | 快速释放空间 |
| 扩容系统盘 | ✅ 根本解决 | 需停机+操作文件系统 |
| 添加数据盘 | ✅ 长期推荐 | 更好分离系统与业务数据 |
如有需要,可提供具体系统版本和磁盘信息,我可以给出更详细的命令指导。
云计算HECS