rmdir.cn
← 排障手册

磁盘满排障

区分容量与 inode 耗尽,定位同文件系统目录占用和删除后仍打开的文件。

适用范围与前提

Linux 文件系统空间排查;不是自动清理工具。

  • 把 /srv/app 替换为出现写入失败的实际路径,先确认所属挂载点。
  • 目录扫描可能造成磁盘负载,应避开高峰;lsof 未安装时请管理员评估,不自动安装。
  • 不要默认删除日志、数据库文件、容器卷或备份。

命令仅供手动复制到获授权的环境执行。站点不会连接服务器;涉及网络的诊断可能产生请求或登录审计记录。

1. 区分字节空间与 inode

df -h /srv/app
df -i /srv/app

预期现象:Use% 高表示容量不足;IUse% 高表示 inode 不足。确认输出的挂载点不是另一个盘。

2. 在同一文件系统内定位大目录

sudo du -x -h --max-depth=1 /srv/app

预期现象:-x 不跨文件系统;逐级缩小目录范围。du 可能因权限、稀疏文件、快照等与 df 不一致。

3. 定位大量小文件

sudo du --inodes -x --max-depth=1 /srv/app

预期现象:GNU du 支持时可比较目录 inode 占用;若版本不支持,请管理员安排限范围文件数量检查,避免全盘扫描。

4. 检查已删除但进程仍持有的文件

sudo lsof +L1

预期现象:核对设备、文件大小和持有 PID;已删除文件的空间可能要在进程关闭句柄后才释放。

修复建议(需人工确认)

  • 优先与业务确认容量规划、日志轮转和保留策略;扩容、迁移或清理需备份及人工确认。
  • 删除后仍打开的文件由服务负责人安排关闭句柄或维护重启,评估中断风险;不要直接截断进程文件描述符。
  • inode 耗尽时先确认临时/缓存文件生命周期,不能根据目录名批量删除。
完成经确认的修复后,验证恢复

验证恢复

  • 复查目标文件系统的 df -h 与 df -i,观察空间是否稳定。
  • 由业务负责人验证写入恢复,并确认没有持续异常增长。

升级求助前收集

  • 挂载点、文件系统类型、df/du 对比、inode 情况、脱敏持有进程信息及增长趋势。