必须立即排查根分区(/)或数据盘挂载点是否100%占用,否则将导致服务中断、日志写入失败、容器崩溃及ssh断连;需依次执行df -h定位高占用分区,du -sh命令定位大目录,再按日志、docker、扩容三类场景安全清理或扩展。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

火山引擎云服务器磁盘空间告警或系统无法写入时,必须立即排查根分区(/)或数据盘挂载点是否已100%占用,否则会导致服务中断、日志写入失败、容器崩溃甚至SSH连接断开。
确认磁盘使用率和瓶颈位置
登录实例后,先执行 df -h 查看各挂载点使用率,重点关注 /、/var、/var/log 和数据盘挂载路径(如 /mnt/data)。
若 df -h 显示某分区使用率超95%,再用 du -sh /* 2>/dev/null | sort -hr | head -n 10 快速定位根目录下最大的子目录;对数据盘则替换为对应挂载路径,例如 du -sh /mnt/data/* 2>/dev/null | sort -hr | head -n 10。
【关键前提】 不要直接删 /var/log/journal 或 /var/lib/docker 下的文件——未停止相关服务就强制删除可能引发 systemd-journald 崩溃或 Docker 守护进程异常退出。
清理系统日志(适用于 /var/log 占用过高)
方法一:启用 journal 日志轮转并释放空间
执行 sudo journalctl --disk-usage 查看当前 journal 占用大小;
运行 sudo journalctl --vacuum-size=500M 将日志压缩至500MB以内;
再执行 sudo systemctl restart systemd-journald 使配置生效。
方法二:清空旧日志但保留最近7天sudo journalctl --vacuum-time=7d ——该命令会安全删除7天前的所有日志条目,不破坏当前运行状态。
若 /var/log 下有应用自建日志(如 nginx、tomcat),进入对应目录后用 ls -ltS | head -n 5 找出最大日志文件,确认无业务依赖后用 truncate -s 0 filename.log 清空内容(比 rm 更安全,不改变文件句柄指向)。
处理 Docker 存储膨胀(常见于 /var/lib/docker)
第一步:查看 Docker 磁盘占用详情docker system df -v ——输出中重点关注 Local Volumes 和 Build Cache 是否异常增长。
第二步:清理无用资源
执行 docker system prune -a --volumes 删除所有未使用的镜像、容器、网络和卷;
【注意】 此操作不可逆,会丢失所有已停止容器的数据卷,请提前确认无重要数据未备份。
第三步:限制日志大小(预防复发)
编辑 /etc/docker/daemon.json,添加以下配置:{"log-driver": "json-file","log-opts": {"max-size": "10m", "max-file": "3"}};
保存后执行 sudo systemctl reload docker 生效。
扩容数据盘(当清理无效且业务需持续增长)
第一步:在火山引擎控制台完成云盘扩容
进入「云服务器 ECS」→「实例列表」→ 目标实例 →「磁盘」→ 找到对应数据盘 → 点击「扩容」→ 输入新容量(须大于当前值)→ 提交。
第二步:登录实例,扩展文件系统
① 运行 lsblk 确认磁盘设备名(如 /dev/vdb)及分区名(如 /dev/vdb1);
② 若为 GPT 分区表,执行 growpart /dev/vdb 1 扩展分区;
③ 执行 resize2fs /dev/vdb1(ext4)或 xfs_growfs /mnt/data(XFS)同步扩展文件系统。
执行完 df -h 验证挂载点容量已更新。











