VPS 磁盘满了,空间都去哪了?
用 df 分别看容量和 inode,再找大目录。分清 Docker 镜像、日志与业务数据,别直接删除数据库文件或数据卷。
网站无法上传,或数据库提示空间不足,先查出问题的挂载点。VPS 可能有多块盘,根目录有余量,不代表应用数据盘也有空间。
容量与 inode 分开看
df -h
df -i
sudo du -xhd1 /var
sudo du -xhd1 /opt
df -h 看文件系统容量,df -i 看 inode。大量小文件可能先耗尽 inode;du -x 限制在同一文件系统内,避免把其他挂载盘一起统计。按结果继续进入占用大的目录,不从根目录开始盲删。
df 与 du 结果不同还可能涉及已删除但仍被进程打开的文件。日志被删除后,程序继续持有文件句柄,空间未必立即释放;需要按程序支持的方式重新打开日志或处理进程。
Docker 空间先看构成
sudo docker system df
sudo docker compose ps
区分镜像、容器可写层和数据卷。数据库、上传文件和照片库可能在数据卷里,不能因为名字看不懂就删除。先备份并验证恢复,再决定旧项目的数据是否确实可以移除。
不要照抄带 --volumes 的全局清理命令。它与删除旧镜像的范围不同;一个卷没有被当前容器挂载,也不证明其中的数据没有用途。
日志要设置保留,不只清一次
确认容器日志驱动及应用日志目录。Docker 的日志轮转配置只控制对应驱动保存的日志,不会同时处理应用写入数据卷中的文件。Nginx 的文件日志按其重新打开日志的机制轮转,别用删除当前日志替代轮转。
数据库目录由数据库工具管理,不手动删除其中看起来很大的文件。备份包需要保留多久,也按实际恢复要求决定;先移到独立存储并校验,再处理本机副本。
清理以后仍不够,再考虑扩盘
确认日志与无用文件已按规则处理,业务数据仍持续增长时,读存储 VPS 的容量选择比较扩盘或迁移。把每月数据增长和恢复临时空间一起算;文件系统与 inode 问题先处理,写入失败也可能不是磁盘容量不足。扩容时核对云盘、分区与文件系统的步骤;完成后重新检查容量、inode 与应用读写。
清理后业务数据仍持续增长,优先比较扩盘与迁移的完整费用,而不是只换一个更大的系统盘。需要单独规划挂载数据,可到 查看 ECS 的数据盘与实例组合;整套个人应用准备迁移,可比较 雨云 RCS 的磁盘配置。购买前留出恢复副本、镜像与下一阶段增长空间,并确认扩盘后分区、文件系统如何处理。




