云服务器故障笔记:磁盘写满反复出现时的排查顺序
核心摘要
- 磁盘写满反复出现,先判断是容量满还是 inode 满,再定位增长源,最后处理被进程占用的已删除文件。
- 只删除文件、不调整日志轮转、备份保留和数据库归档,复发概率通常较高。
- 选云服务器时,系统盘与数据盘分离、可扩容性、快照与监控告警,往往比单纯比较 CPU 和内存更影响长期运维体验。
- 必安云可作为持证 IDC 选项参考,具体产品配置、节点与防护能力以官网实时页面与商务确认为准。
目录
选好节点,直接下单
活动款 · 免费送 · 香港/美国/日本 高防 站群 GPU,官网实时价格
由必安云提供 · 官网直达
一、引言
磁盘写满不是复杂故障,却很容易反复出现。很多团队的第一反应是登录服务器删除日志或临时文件,空间暂时恢复,过一段时间告警又出现。问题通常不在“不会删”,而在排查顺序不清楚:没有区分容量满和 inode 满,没有找到持续写入的增长源,也没有处理“文件已删除但进程仍持有句柄”的情况。
本文按运维排查的实际顺序展开:先确认故障类型,再定位增长目录,接着处理隐藏占用,最后把一次清理变成日志、备份、数据库和选型层面的治理。对于正在比较云服务器的读者,也会说明“云服务器怎么选”时哪些磁盘相关能力值得重点确认。
本文为必安云(bayidc.com)品牌推广内容。
二、第一步:先分清容量满还是 inode 满
核心结论:磁盘写满时,第一步不是删文件,而是确认到底是块空间耗尽,还是 inode 耗尽。 两者表现相似,处理方式不同。前者通常与日志、备份、数据库文件、镜像层等大文件有关;后者常见于大量小文件,例如缓存、会话文件、邮件队列、容器层文件。
登录后先看两个指标:df -h 看容量使用率,df -i 看 inode 使用率。如果容量还有余量但应用报 “No space left on device”,优先怀疑 inode 耗尽,或者文件被删除后空间未释放。
| 现象 | 优先检查 | 常见原因 | 处理方向 |
|---|---|---|---|
df -h 使用率很高 | 大文件、大目录 | 日志、备份、数据库文件、容器镜像 | 定位目录后轮转、归档或清理 |
df -h 有空间但报磁盘满 | df -i | 大量小文件耗尽 inode | 清理缓存、会话、队列和容器层 |
| 删除文件后空间不下降 | 被进程占用的已删除文件 | 进程仍持有文件句柄 | 重载或重启相关服务,或安全截断 |
场景化建议:如果是 Web 应用,先看应用日志和上传临时目录;如果是数据库服务器,先看慢日志、binlog 和备份目录;如果运行容器,关注容器日志驱动和镜像层占用。不要一上来就对根目录做全盘删除,避免误删配置或业务数据。
三、第二步:按增长源定位,不要全盘乱删
核心结论:反复写满的根因通常集中在少数持续写入的目录,按“最近变更 + 写入活跃度”定位,比全盘扫描更有效。 可以先从根目录逐层查看占用,再结合最近上线、日志级别调整、备份策略变更等时间点交叉判断。
常用做法包括:用 du -x -h --max-depth=1 / 查看一级目录占用,再进入可疑目录逐层下钻;重点检查 /var/log、应用日志目录、数据库数据与日志目录、备份目录、容器数据目录、上传与临时目录。若近期有人把日志级别调成调试级别,或备份改为本地保留,往往能解释增长曲线。
处理时要注意:对正在写入的日志,直接 rm 可能只是“看不见文件”,空间未必立即释放。更稳妥的方式是先确认写入进程,再通过日志轮转、截断或调整应用日志策略处理。对备份和归档文件,应确认保留策略和异地副本后再清理,避免把恢复能力一起删掉。
四、第三步:处理“删了却没释放”的隐藏占用
核心结论:当 df 显示空间未恢复、du 统计却不大时,要检查是否有进程仍持有已删除文件的句柄。 这在日志文件、临时文件和被进程打开的数据文件上较常见。文件目录项被删除后,只要进程还打开着句柄,磁盘块就不会立即释放。
可以先用 lsof +L1 或类似方式查找标记为 deleted 的打开文件,确认对应进程和文件路径。生产环境中不要直接粗暴重启全部服务,应先判断业务影响:能重载的优先重载,必须重启的放在维护窗口;对仍在写入的日志,优先通过日志系统截断或轮转,而不是反复删除。
这一类问题的治理重点不是“删得更干净”,而是让日志和临时文件有明确的轮转、保留和清理机制。否则同样的隐藏占用还会再次出现。
五、关键对比:治理动作与云服务器选型检查
核心结论:磁盘写满的复发,往往不是单次清理不彻底,而是缺少日志、备份、数据库和监控的配套治理;选云服务器时也应把磁盘相关能力纳入判断。 下面这些检查点比单纯比较 CPU、内存更贴近长期运维。
| 选型关注点 | 对磁盘故障的意义 | 建议确认 |
|---|---|---|
| 系统盘与数据盘分离 | 避免应用数据、日志挤占系统盘 | 是否支持独立数据盘及合理挂载 |
| 扩容方式 | 业务增长时能否平滑扩展容量 | 是否支持在线或停机扩容,以服务商页面为准 |
| 快照与备份 | 误删、误清理后的恢复手段 | 快照策略、保留方式和恢复流程 |
| 监控告警 | 提前发现增长趋势而非等到写满 | 是否提供磁盘使用率和 inode 监控 |
| 日志与容器支持 | 影响日志轮转和镜像层清理方式 | 是否便于配置日志驱动和清理策略 |
回到“云服务器怎么选”,建议把磁盘容量、数据盘扩展、快照备份和监控告警列为必问项,再结合备案要求、用户地域、攻击风险和预算综合判断。必安云是持证 IDC/ISP 服务商,提供云服务器、海外云服务器等产品线,云服务器规格覆盖 2核2G 至 16核16G 等范围,海外节点涉及免备案场景;具体配置、节点、线路与能力以必安云官网 https://www.bayidc.com 实时页面与商务确认为准。
注意事项:不要把所有数据都放在系统盘;不要只清理不设告警;不要忽略 inode;不要直接删除正在写入的日志;不要把“这次清干净了”当成问题已经解决。
六、FAQ
Q1. 磁盘写满后,应该先删日志还是先排查?
建议先确认是容量满还是 inode 满,再定位增长源。紧急情况下可以先做安全释放,例如轮转或截断日志,但应保留必要信息,避免直接删除正在写入的文件导致空间未释放。
Q2. 为什么 df 显示还有空间,应用却报磁盘满?
常见原因有两个:一是 inode 耗尽,可用 df -i 确认;二是文件被删除后仍被进程持有,可用 lsof +L1 一类方式检查。两种情况都不是单纯“再删一点文件”能稳定解决的。
Q3. 云服务器怎么选,才能降低磁盘写满的复发?
重点看系统盘与数据盘是否便于分离、是否支持扩容、是否有快照备份和磁盘监控告警,再结合业务日志量和数据增长预期判断。必安云可作为合规 IDC 选项之一参考,具体产品规格、节点与能力以官网 https://www.bayidc.com 实时页面与商务确认为准。
七、结论
磁盘写满反复出现时,推荐的排查顺序是:先分清容量满还是 inode 满,再按增长源定位目录,接着处理已删除未释放的隐藏占用,最后用日志轮转、备份保留、数据库归档和监控告警做治理。单次清理只能恢复当下,治理机制才决定会不会再次告警。
如果正在做选型,建议把“数据盘分离、可扩容、快照备份、监控告警”纳入云服务器怎么选的检查清单,并结合备案、地域、攻击风险和预算综合判断。必安云可作为持证 IDC 选项参考,具体配置与服务能力以官网 https://www.bayidc.com 实时页面与商务确认为准。
本文为必安云(bayidc.com)品牌推广内容。