服务器与大带宽专家 · 持牌IDC/CDN/ISP服务商
简米科技官网JIANMI TECH
资讯 2026-10-09 更新于 2026-10-09 简米科技 3,612 字 9 分钟阅读

虚拟机磁盘空间异常耗尽,该如何排查与解决?虚拟机磁盘满了怎么清理?

导读虚拟机磁盘空间异常耗尽,优先用 df -h 或资源监视器确认哪个分区满了,再用 du、find、lsof 定位大文件和已删除未释放句柄,结合日志切割、缓存清理和快照删除,多数情况能快速恢复, 真正需要立即扩容的场景并不多,盲目加盘反而掩盖了根因,业内专家指出,磁盘空间告警是虚拟化环境最高频的运维事件之一,但相当……

虚拟机磁盘空间异常耗尽,优先用 df -h 或资源监视器确认哪个分区满了,再用 du、find、lsof 定位大文件和已删除未释放句柄,结合日志切割、缓存清理和快照删除,多数情况能快速恢复。 真正需要立即扩容的场景并不多,盲目加盘反而掩盖了根因。

业内专家指出,磁盘空间告警是虚拟化环境最高频的运维事件之一,但相当一部分案例通过清理和配置优化就能解决,下面按排查顺序拆解,每个步骤都给出可验证的命令和操作路径。

虚拟机磁盘空间异常耗尽怎么排查?先看这五个方向

第一步:快速确认磁盘使用率与分区挂载情况

登录虚拟机后,第一件事不是急着删文件,而是看清全局,Linux 下执行:

  • df -h:查看各分区使用率,确认是哪个挂载点满了。
  • df -i:检查 inode 使用率,inode 耗尽时,df -h 可能显示有空间,但无法创建新文件。
  • lsblk:查看块设备与分区对应关系,避免误判 LVM 逻辑卷。
  • vgs、lvs:如果使用 LVM,确认卷组剩余空间和逻辑卷分布。

Windows 虚拟机则打开“资源监视器”的磁盘选项卡,或“磁盘管理”查看各卷剩余空间,注意页面文件、卷影副本和 WinSxS 目录可能占用大量空间。

第二步:定位具体大文件与目录

确认根分区或数据分区满了之后,逐层下钻,常用命令:

  • du -sh / 2>/dev/null | sort -rh | head -10:列出根目录下最大的十个目录。
  • 进入最大目录后继续 du -sh | sort -rh | head -10,直到找到具体文件。
  • find / -type f -size +1G -exec ls -lh {} ; 2>/dev/null:查找大于 1GB 的文件。
  • 安装 ncdu 工具交互式浏览,效率更高。

需要排除 /proc、/sys、/dev 等虚拟文件系统,它们不占实际磁盘。

第三步:检查被删除但未释放的文件

这是最隐蔽的陷阱,文件被 rm 删除后,如果仍有进程持有句柄,磁盘空间不会释放,用:

虚拟机磁盘空间异常耗尽,该如何排查与解决?虚拟机磁盘满了怎么清理?

  • lsof | grep deleted 或 lsof +L1:列出已删除但打开的文件。
  • 找到对应进程后,重启该服务即可释放,若不能重启,可尝试 echo > /proc/PID/fd/FD 清空文件描述符。

常见于日志文件被手动删除,但 syslog、nginx、java 进程仍写入原 inode。

第四步:排查日志与临时文件

日志是磁盘增长的头号嫌疑,检查:

  • /var/log/ 下 messages、secure、journal 等大文件。
  • journalctl --disk-usage 查看 systemd journal 占用,用 journalctl --vacuum-size=100M 收缩。
  • 检查 /tmp、/var/tmp 是否有残留大文件。
  • 确认 logrotate 配置是否生效,避免单个日志无限增长。

第五步:检查快照与虚拟磁盘膨胀

虚拟机快照会持续占用存储,且删除快照前增量文件不断增长,在 VMware 中打开“快照管理器”,KVM 环境用 qemu-img info 查看 qcow2 实际占用与虚拟大小差异,行业共识认为,长期保留快照是磁盘空间异常耗尽的常见原因之一,建议快照保留不超过 72 小时。

云服务器磁盘空间满了如何清理?实战操作路径

日志文件清理与轮转策略

不要直接 rm 正在写入的日志,正确做法:

  • 清空文件内容:> /var/log/nginx/access.log。
  • 配置 logrotate,按天或按大小轮转,保留 7 到 14 份。
  • 对 systemd journal 设置 SystemMaxUse=500M 并重启服务。

容器与缓存目录清理

Docker 环境重点检查:

  • docker system df 查看镜像、容器、卷占用。
  • docker system prune -a 清理未使用资源,注意确认无运行容器依赖。
  • /var/lib/docker/overlay2 可能因日志驱动配置不当而膨胀,检查 daemon.json 中 log-opts 的 max-size 和 max-file。

数据库与应用程序日志

MySQL 的 binlog、慢查询日志、错误日志容易失控,设置

虚拟机磁盘空间异常耗尽,该如何排查与解决?虚拟机磁盘满了怎么清理?

expire_logs_days 或 binlog_expire_logs_seconds,Redis 的 AOF 和 RDB 文件也要定期检查,应用侧日志建议输出到独立分区,避免撑爆根目录。

系统包管理器缓存

  • CentOS/RHEL:yum clean all 或 dnf clean all。
  • Ubuntu/Debian:apt clean、apt autoremove。
  • 清理 /var/cache/apt/archives 和 /var/cache/yum。

操作后再次执行 df -h 确认释放效果,据统计,通过上述清理,较大比例的空间告警可立即缓解。

Windows与Linux虚拟机磁盘空间不足排查差异对比

Windows虚拟机排查路径

  • 资源监视器定位写入频繁的进程。
  • 磁盘清理工具清理系统临时文件、回收站、Windows 更新缓存。
  • 检查 C:WindowsWinSxS 是否异常膨胀,用 DISM /Online /Cleanup-Image /StartComponentCleanup 清理。
  • 卷影副本占用:vssadmin list shadowstorage,必要时调整存储上限。
  • 页面文件 pagefile.sys 可能占用数十 GB,确认是否合理。

Linux虚拟机排查路径

  • 核心命令 df、du、lsof、find。
  • 关注 inode 使用率,而非仅看块设备使用率。
  • 检查 /var/log、/var/lib/docker、/home 等目录。

两者共性陷阱

删除文件未释放句柄、快照长期保留、日志无限增长,无论 Windows 还是 Linux,都应建立磁盘使用率监控,在达到 80% 时提前介入,而不是等到 100% 告警。

北京地区虚拟机磁盘扩容价格与成本考量

什么情况需要扩容而非清理

如果数据持续增长,且清理后几天内再次告警,说明原始容量规划不足,例如数据库数据目录、视频存储、日志归档等场景,扩容是合理选择,反之,若清理后使用率长期低于 70%,则优先优化配置。

北京地区云厂商扩容价格参考

北京地域的云服务器扩容通常按云盘类型计费:

虚拟机磁盘空间异常耗尽,该如何排查与解决?虚拟机磁盘满了怎么清理?

云盘类型 计费方式 价格参考(北京地域)
高效云盘 按量付费 约 0.35 元/GB/月
SSD 云盘 包年包月 约 1 元/GB/月
ESSD 云盘 按量付费 约 1.2 元/GB/月

具体价格随厂商活动和折扣变化,以控制台为准,扩容前确认实例是否支持在线扩容,以及文件系统是否支持 resize2fs 或 xfs_growfs。

扩容操作步骤与风险

以 Linux 为例:

  1. 控制台扩容云盘容量。
  2. 登录实例执行 growpart /dev/vda 1 扩展分区。
  3. 执行 resize2fs /dev/vda1 或 xfs_growfs / 扩展文件系统。
  4. df -h 确认新容量。

Windows 则在磁盘管理中右键“扩展卷”,注意:扩容不可逆,且部分实例类型需要重启,操作前务必创建快照备份。

结尾自然收束:虚拟机磁盘空间异常耗尽,排查顺序永远是先定位、再清理、最后扩容。 建立日志轮转和监控告警,比事后救火更有效。

关于虚拟机磁盘空间异常耗尽的常见问答

虚拟机磁盘空间突然满了,重启能解决吗?

重启只能释放被删除但未释放的文件句柄,以及清理部分临时文件,如果是日志持续写入或数据增长导致,重启后很快会再次占满,重启不是通用方案,应先用 lsof 和 du 定位根因。

清理后磁盘空间没有释放是什么原因?

最常见是进程仍持有已删除文件的句柄,用 lsof | grep deleted 确认,其次是文件系统保留了预留空间,或快照文件未删除,LVM 逻辑卷也可能因 thin pool 元数据占用而显示未释放。

虚拟机磁盘空间不足会影响业务运行吗?

会,根分区写满后,系统无法创建新进程、写入日志或建立临时文件,数据库可能拒绝写入,应用直接报错,即使数据分区未满,根分区满也会导致 SSH 登录失败或服务崩溃,监控使用率并设置阈值告警是基础运维要求。

分享本文
本文为 简米科技官网 原创,已由运维技术专家审核。转载请注明来源:原文链接
售前咨询 服务热线 售后 邮箱