首页/系统/Linux 运维命令速查/inode 是什么与耗尽排查
磁盘与文件系统51 条

inode 是什么与耗尽排查

inode 保存文件元数据而非文件名:小文件海量场景会「空间有富余但 inode 用尽」,写不进任何文件;df -i 是常用诊断命令。

Linux 运维命令速查系统更新于 2026-10-13

inode 是什么

inode 保存文件的元数据(所有者、权限、时间戳、数据块位置),文件名与它的映射关系记在目录项里。这带来一个反直觉的后果:inode 数量耗尽的文件系统会提示空间不足,但按容量看仍有大量空闲。

基本信息

用途理解 inode 机制与耗尽故障
查看命令df -i 与 ls -i 与目录文件计数
典型表现写入报空间不足,但按容量看仍有空闲
分配方式ext 系列创建时固定,动态分配的文件系统另说

典型使用场景

  • 小文件海量写入:会话文件、缓存分片、邮件队列把 inode 用尽
  • 故障诊断:写不进任何文件时同时看容量与 inode 使用率
  • 清理定位:找出贡献最多小文件的目录,针对性清理
  • 容量规划:明确业务是否产生海量小文件,据此选择文件系统
  • 删除效率:海量小文件目录删除很慢,需要更合适的删除方式

诊断

诊断
df -i                                       # 关注使用率是否接近 100%
find /var -xdev -type f | wc -l             # 统计目录下的文件数量
du -a --max-depth=3 /var 2>/dev/null | sort -n | tail -n 5
ls -i /var/log/messages                     # 查看单个文件的 inode 编号

处理

处理
find /var/lib/php/sessions -type f -mtime +7 -delete
mv /data/spool /data/spool.old && rm -rf /data/spool.old &   # 整目录搬走再删,速度更快

命令对照

命令作用说明
查看 inode 使用率发现耗尽的关键故障时必须与容量一起看
查看 inode 编号确认文件标识可判断硬链接是否同源
文件计数定位贡献最多的目录先计数再决定清理
按时间删除清理过期文件先用输出模式确认范围
整目录搬移后删除加速删除过程比逐文件删除更快
ext 系列在创建文件系统时固定 inode 总量,创建后无法增加;动态分配的文件系统更多表现为元数据空间耗尽。
看到容量还有空闲就排除磁盘问题是最常见的误判,小文件场景必须查 inode 使用率。
海量小文件目录逐文件删除速度很慢,整目录搬移后删除更稳,过程中空间占用也可控。

易错点

  • 只看容量不看 inode 使用率是典型误判,小文件场景必须先查 inode
  • 海量小文件目录用逐文件删除会非常慢,应改用整体搬移后删除
  • ext 系列的 inode 数量创建时固定,事后无法增加,只能迁移到新文件系统
  • 清理前不先用输出模式确认命中范围,可能删掉仍在使用的会话或队列文件

数据来源与参考

  • ext4 文档:inode 分配
  • XFS 官方文档:inode 管理
  • man 8 mkfs.ext4(-N 选项)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌