当阿里云服务器(ECS)的系统盘空间不足时,可以采取以下几种方法来解决:
一、排查和清理磁盘空间(推荐优先尝试)
-
登录服务器查看磁盘使用情况
df -h查看各分区使用率,确认是否真的空间不足。
-
查找大文件或占用空间较多的目录
du -sh /* 2>/dev/null | sort -hr | head -10或进入根目录后:
du -sh * | sort -hr -
常见可清理内容
- 日志文件:
/var/log/目录下的日志(如messages,secure,nginx/access.log等)# 清空大日志(谨慎操作) > /var/log/messages # 或使用 logrotate 管理日志轮转 - 临时文件:
/tmp/、/var/tmp/ - 缓存文件:
- YUM 缓存(CentOS/RHEL):
yum clean all - APT 缓存(Ubuntu/Debian):
apt-get clean
- YUM 缓存(CentOS/RHEL):
- 旧内核或无用软件包
- CentOS:
package-cleanup --oldkernels --count=1 - Ubuntu:
apt autoremove --purge
- CentOS:
- 日志文件:
-
检查是否有僵尸进程占用已删除文件
lsof +L1如果有输出,说明某些进程仍在占用已被删除的大文件,重启对应服务或进程即可释放空间。
二、扩容系统盘(适用于长期使用)
⚠️ 注意:系统盘扩容需要停机操作,建议提前备份数据并做好快照。
操作步骤:
-
创建系统盘快照(重要!)
- 登录 阿里云控制台
- 找到目标实例 → 磁盘 → 创建快照
-
停止 ECS 实例
- 在控制台中“停止”实例(不能是“强制停止”)
-
扩容系统盘
- 进入实例详情 → “本实例磁盘” → 选择系统盘 → “更多” → “修改配置(变更云盘)”
- 调整系统盘大小(例如从 40GB 改为 80GB)
- 确认费用并提交
-
启动实例并扩展分区和文件系统
- 启动实例后,登录系统,执行以下命令扩展分区(以 Linux 为例):
查看当前磁盘大小:
fdisk -l使用 growpart 扩展分区(如果未安装,先安装)
yum install cloud-utils-growpart -y # CentOS apt install cloud-guest-utils -y # Ubuntu扩展分区(假设系统盘是 /dev/vda,分区是 /dev/vda1)
growpart /dev/vda 1扩展文件系统
- 对于 ext4:
resize2fs /dev/vda1 - 对于 xfs:
xfs_growfs /
-
验证扩容结果
df -h查看根分区是否已扩容成功。
三、其他优化建议
- 迁移数据到数据盘
- 购买一块新的数据盘挂载到
/data或/home等目录 - 将网站、数据库、日志等迁移到数据盘
- 购买一块新的数据盘挂载到
- 使用对象存储(OSS)
- 静态资源(图片、视频、日志归档)上传到 OSS,节省本地空间
- 定期维护脚本
- 设置定时任务(crontab)自动清理日志和缓存
总结
| 方法 | 优点 | 缺点 |
|---|---|---|
| 清理磁盘 | 快速、免费 | 治标不治本 |
| 扩容系统盘 | 根本解决 | 需停机、可能收费 |
| 增加数据盘 | 灵活扩展 | 成本增加 |
✅ 建议流程:
先清理 → 再做快照 → 扩容系统盘 → 扩展文件系统 → 长期规划数据分离
如有具体操作系统(如 CentOS 7、Ubuntu 20.04)或错误提示,可提供更详细指导。
CLOUD云计算