加油
努力

阿里云服务器系统盘使用率过高如何解决?

阿里云服务器系统盘使用率过高是一个常见问题,可能导致系统运行缓慢、服务中断甚至无法登录。以下是排查和解决该问题的详细步骤:


一、检查当前磁盘使用情况

  1. 登录服务器(SSH)

    ssh root@your_server_ip
  2. 查看磁盘使用率

    df -h

    输出示例:

    Filesystem      Size  Used Avail Use% Mounted on
    /dev/vda1        40G   38G  2G    95% /

    如果 / 分区(即系统盘)使用率超过 80%,就需要处理。


二、查找占用空间大的文件/目录

使用 du 命令查找大文件或大目录:

# 查看根目录下各目录大小(按大小排序)
sudo du -sh /* | sort -hr | head -10

常见占用高的目录:

  • /var/log:日志文件
  • /var/lib/docker:Docker 镜像和容器(如果你用了 Docker)
  • /tmp:临时文件
  • /home/root:用户文件

进一步深入某个目录:

sudo du -sh /var/log/* | sort -hr | head -10

三、常见原因及解决方案

1. 日志文件过大(最常见)

清理系统日志:

# 清空日志文件(谨慎操作)
sudo truncate -s 0 /var/log/syslog
sudo truncate -s 0 /var/log/messages
sudo truncate -s 0 /var/log/nginx/*.log   # 如果是 Nginx
sudo truncate -s 0 /var/log/apache2/*.log # Apache

⚠️ 注意:不要直接删除正在使用的日志文件,应清空或用 logrotate 管理。

配置日志轮转(logrotate)
确保 /etc/logrotate.conf/etc/logrotate.d/ 下有合理配置,避免日志无限增长。


2. Docker 占用空间高

如果你运行了 Docker:

# 查看 Docker 磁盘使用情况
docker system df

# 清理未使用的镜像、容器、网络、构建缓存
docker system prune -a --volumes

⚠️ -a 会删除所有未使用的镜像,慎用。


3. 临时文件或缓存过多

# 清理 apt 缓存(Ubuntu/Debian)
sudo apt clean
sudo apt autoremove

# 清理 yum 缓存(CentOS/RHEL)
sudo yum clean all

# 清理临时文件
sudo rm -rf /tmp/*
sudo rm -rf /var/tmp/*

4. 应用程序日志或数据文件

检查你的应用(如 Web 服务、数据库等)是否在系统盘写入大量日志或数据:

  • 检查 Nginx/Apache 日志路径
  • 检查 MySQL 的 datadir 是否在系统盘
  • 检查是否有程序生成了大文件(如 .tar, .log, .sql 备份)

建议将这些数据迁移到数据盘


四、长期解决方案

✅ 1. 挂载数据盘用于存储

如果已有数据盘,挂载到 /data/opt,并将日志、数据库、网站文件等迁移到数据盘。

✅ 2. 扩容系统盘(推荐)

阿里云支持在线扩容系统盘:

  1. 登录 阿里云控制台
  2. 找到对应实例 → 更多 → 磁盘与镜像 → 扩展磁盘
  3. 选择“系统盘”进行扩容(如从 40GB 扩到 80GB)
  4. 扩容后,在服务器中使用 growpartresize2fs(ext4)或 xfs_growfs(xfs)扩展文件系统

示例(ext4 文件系统):

# 安装 growpart 工具
sudo yum install cloud-utils-growpart -y   # CentOS
sudo apt install cloud-guest-utils -y     # Ubuntu

# 扩展分区和文件系统
sudo growpart /dev/vda 1
sudo resize2fs /dev/vda1

注意:XFS 文件系统使用 xfs_growfs /

✅ 3. 设置监控和告警

在阿里云控制台为磁盘使用率设置告警(如 >80% 触发短信/邮件通知),提前预警。


五、预防措施

  • 定期清理日志(可写 cron 脚本自动清理)
  • 使用 logrotate 自动管理日志
  • 应用数据、备份、日志等不要放在系统盘
  • 监控磁盘使用趋势

总结

步骤 操作
1 df -h 查看使用率
2 du -sh /* | sort -hr 找大目录
3 清理日志、缓存、Docker
4 迁移数据或扩容系统盘
5 设置监控告警

如有具体场景(如 WordPress、MySQL、Docker 等),可提供更多信息,我可以给出更精准的清理建议。

云服务器