加油
努力

阿里云ECS系统盘空间不足怎么办?

当阿里云ECS实例的系统盘空间不足时,可以按照以下步骤进行排查和解决:


一、检查磁盘使用情况

登录到ECS实例,使用命令查看磁盘占用情况:

df -h

这会显示各分区的使用率。重点关注 /(根目录)或 /boot 等系统分区。

进一步查看具体目录占用情况:

du -sh /* 2>/dev/null | sort -hr | head -10

这可以帮助你找出哪些目录占用了大量空间。


二、清理不必要的文件

1. 清理日志文件

系统日志可能占用大量空间,常见路径:

  • /var/log/
  • /var/log/messages, /var/log/syslog
  • 应用日志(如 Nginx、Apache、MySQL)

可使用以下方式清理:

# 清空大日志文件(谨慎操作)
> /var/log/messages
> /var/log/nginx/access.log

# 或使用 logrotate 管理日志轮转
sudo logrotate -f /etc/logrotate.conf

2. 清理包管理缓存

  • CentOS/RHEL(yum/dnf)
    yum clean all
    rm -rf /var/cache/yum
  • Ubuntu/Debian(apt)
    apt-get clean
    apt-get autoremove

3. 删除临时文件

rm -rf /tmp/*
rm -rf /var/tmp/*

4. 卸载无用软件

# 查看已安装软件
rpm -qa    # CentOS
dpkg -l    # Ubuntu

# 卸载不需要的软件包
yum remove package_name
# 或
apt-get remove package_name

5. 检查并删除大文件

查找大于100MB的文件:

find / -type f -size +100M 2>/dev/null | xargs ls -lh

三、扩容系统盘(推荐长期方案)

如果清理后仍空间不足,建议扩容系统盘

方法1:在线扩容(推荐)

  1. 登录 阿里云控制台 → 进入 ECS 实例详情页

  2. 停止实例(部分情况下支持不停机,但建议停止以确保安全)。

  3. 在“本实例磁盘”中选择系统盘,点击 “更多” → “修改配置” → “扩容”

  4. 选择更大的容量(例如从40GB扩容到60GB)。

  5. 启动实例。

  6. 登录系统后,扩展文件系统(关键步骤!):

    • 如果是 ext4 文件系统

      resize2fs /dev/vda1   # 根据实际设备名调整
    • 如果是 xfs 文件系统

      xfs_growfs /

    注意:设备名如 /dev/vda1 可通过 lsblk 命令查看。

方法2:更换更大系统盘(备用)

  • 创建系统盘快照。
  • 使用快照创建更大容量的新自定义镜像。
  • 基于新镜像重新创建ECS实例(适用于不能直接扩容的旧实例)。

四、预防措施

  1. 定期监控磁盘使用

    • 使用云监控设置磁盘使用率告警。
    • 部署脚本定期清理日志。
  2. 合理规划初始容量

    • 新购ECS时建议系统盘至少50GB以上,尤其是运行应用较多的情况。
  3. 将数据存储分离

    • 将日志、数据库等数据迁移到数据盘OSS等外部存储。

总结

步骤 操作
1 df -hdu 查看占用
2 清理日志、缓存、临时文件
3 卸载无用软件
4 扩容系统盘(控制台+resize)
5 设置监控与自动化清理

如需帮助确认设备名或文件系统类型,可运行:

lsblk
df -T

⚠️ 操作前建议先对系统盘创建快照备份,防止误操作导致数据丢失。

如有具体错误信息或系统类型(CentOS/Ubuntu等),可提供更详细指导。

云服务器