云服务器磁盘空间不足怎么办?日志、缓存与 inode 排查指南
磁盘已满为什么要先定位再清理
云服务器磁盘空间不足会导致网站无法写入缓存、数据库事务失败、日志中断,严重时还会影响系统登录。直接删除陌生文件可能破坏程序或丢失数据,正确做法是先确认哪个分区、哪个目录和哪类文件增长,再做可回退的清理。
第一步:确认是容量满还是 inode 用尽
磁盘“满”有两种常见情况:一是数据块使用率接近 100%,二是大量小文件耗尽 inode。前者通常与日志、备份、上传文件或数据库有关;后者常见于会话文件、缓存和邮件队列。两种情况的处理方式不同,所以应分别检查分区容量与 inode 使用率。
第二步:找出增长最快的目录
从根目录逐层比较各目录占用,重点关注网站目录、系统日志、数据库数据、临时目录、面板备份和容器数据。不要跨文件系统混合统计,否则结果容易误判。发现大目录后继续向下定位,直到明确是正常业务数据、可重建缓存还是异常堆积。
第三步:检查日志轮转是否失效
访问日志、错误日志和应用调试日志可能持续增长。先确认日志仍是否需要用于排障或审计,再压缩归档或按保留周期清理。只删除当前正在写入的日志文件,服务进程可能仍占用旧文件句柄,空间不会立即释放;更稳妥的方式是使用日志轮转并让服务重新打开日志。
第四步:清理可重建缓存和临时文件
程序缓存、缩略图缓存、包管理缓存和临时上传文件通常可以重建,但应先查阅对应程序规则。不要把数据库目录、用户上传目录或证书文件当作缓存删除。对于会话目录,应确认过期策略,避免清理正在使用的登录会话。
第五步:核对备份是否重复堆积
自动备份任务若没有保留策略,容易在本机同时保存多份网站文件、数据库和压缩包。备份只有在可恢复且与源数据隔离时才有价值。建议保留近期恢复点,把长期备份同步到独立存储,并定期执行恢复验证,而不是无限期堆在系统盘。
第六步:关注数据库和容器数据
数据库二进制日志、慢查询日志、临时表和历史数据可能快速增长。清理前必须确认复制、恢复和审计需求,不能直接删除数据库正在管理的文件。使用容器时,还要检查镜像、停止的容器、构建缓存和无上限增长的 JSON 日志,并先确认哪些资源仍被业务引用。
删除后空间为什么没有释放
如果文件已从目录中删除,但进程仍保持打开句柄,文件系统会继续占用空间。此时应定位占用进程,按业务窗口平滑重载或重启对应服务。不要为了释放空间直接重启整台服务器,先评估数据库和在线业务的影响。
空间恢复后的长期优化
- 为系统盘、数据盘、日志和备份设置容量告警。
- 给日志、缓存、备份制定明确保留周期。
- 把用户上传和数据库增长纳入容量预测。
- 定期检查异常小文件数量,防止 inode 再次耗尽。
- 清理操作保留记录,重要数据先备份并验证。
常见问题
可以只扩容不清理吗?
扩容能缓解紧急压力,但如果异常日志或无保留策略的备份仍在增长,空间会再次耗尽。应先确认增长原因,再决定扩容容量。
磁盘使用率到多少需要告警?
应结合增长速度和业务峰值设置多级阈值。接近上限才告警通常来不及处理,建议同时监控剩余容量、inode、每日增长量和关键目录。
总结
云服务器磁盘排查的核心顺序是“分区与 inode—大目录—日志—缓存—备份—数据库与容器—进程占用”。先用数据定位,再做最小范围清理,并补上轮转、保留和告警机制,才能避免磁盘已满反复发生。