linux查询inode使用率

在 Linux 中,inode 用于存储文件和目录的元数据(如权限、所有者、时间戳等)。当文件系统的 inode 被耗尽时,即使磁盘空间充足,系统也会提示 No space left on device。以下是查询 inode 使用率的详细方法:

1. 使用 df 命令查看全局 inode 使用率

复制代码
df -i

输出示例:

复制代码
df -i
Filesystem      Inodes  IUsed   IFree IUse% Mounted on
/dev/sda1      5242880 123456 5119424    3% /
tmpfs          1024000      1 1023999    1% /dev/shm

关键列说明

  • Inodes:文件系统分配的 inode 总数。

  • IUsed:已使用的 inode 数量。

  • IFree:剩余的 inode 数量。

  • IUse%:inode 使用百分比(重点关注此列)。

2. 查看特定目录的 inode 使用明细

如果发现某个文件系统的 IUse% 接近 100%,需要定位具体是哪个目录占用了大量 inode。

方法 1:逐层统计子目录的 inode 数量
复制代码
# 统计根目录下所有一级子目录的 inode 使用量
sudo find / -xdev -printf "%h\n" | cut -d "/" -f 2 | sort | uniq -c | sort -nr

# 统计指定目录(如 /var)的子目录 inode 数量
sudo find /var -xdev -printf "%h\n" | cut -d "/" -f 3 | sort | uniq -c | sort -nr
方法 2:使用 ncdu 工具可视化分析

安装 ncdu

复制代码
# Debian/Ubuntu
sudo apt install ncdu

# CentOS/RHEL
sudo yum install ncdu

扫描目录:

复制代码
sudo ncdu /  # 扫描整个根目录

Enter 进入子目录,按 d 删除无用文件。

3. 定位小文件密集的目录

大量小文件(如日志、缓存、临时文件)会快速耗尽 inode。使用以下命令查找小文件:

复制代码
# 查找某目录下的小文件(例如 /var)
sudo find /var -type f -size -100k -exec ls -lh {} \; | awk '{ print $9 }' | xargs -I{} du -sh {} | sort -rh

4. 清理无效 inode

场景 1:删除临时文件
复制代码
# 清理 /tmp 目录
sudo rm -rf /tmp/*
场景 2:清理旧日志
复制代码
# 使用 logrotate 管理日志
sudo logrotate -f /etc/logrotate.conf

# 手动清理系统日志
sudo journalctl --vacuum-time=7d  # 保留最近 7 天的日志
场景 3:删除未使用的 Docker 资源
复制代码
docker system prune -af  # 清理镜像、容器、网络、卷等

5. 扩展文件系统的 inode 数量

如果 inode 长期不足,需重新格式化磁盘并指定更大的 inode 数量:

复制代码
# 格式化 ext4 文件系统时指定 inode 比例(默认 16384 bytes/inode,值越小 inode 越多)
sudo mkfs.ext4 -i 8192 /dev/sdb1

注意:此操作会清空磁盘数据,仅适用于新磁盘!


6. 监控 inode 使用率(可选)

使用 cron 定期检查 inode 使用率:

复制代码
# 创建定时任务
sudo crontab -e

# 添加以下内容(每天 8 点检查)
0 8 * * * df -i > /var/log/inode_usage.log

总结

  • 快速命令df -i 查看全局 inode 使用率。

  • 深入分析 :用 findncdu 定位占用 inode 的目录。

  • 清理策略:优先删除临时文件、旧日志和无用小文件。

  • 长期方案:调整文件系统 inode 分配或扩容磁盘。

相关推荐
hello_ world.16 分钟前
RHCA04--系统模块管理与资源限制
linux·服务器·网络
wayuncn21 分钟前
16核32G硬件服务器租用需要多少钱
运维·服务器·服务器租用·裸金属服务器·物理服务器租用·物理机租用·idc服务商
木雷坞22 分钟前
docker国内镜像源列表
运维·docker·容器
-L732 分钟前
【RH124知识点问答题】第8章 监控和管理 Linux 进程
linux
懒大王敲代码35 分钟前
手绘风格制图新选择:如何用Excalidraw+cpolar构建你的视觉化工作流?
linux·服务器·colar
Hoxy.R38 分钟前
一次“无告警”的服务器宕机分析:从无迹可寻到精准定位
运维·服务器
小孙姐40 分钟前
Linux-Day11.WEB服务,虚拟主机
linux·运维·服务器
iLoyalty44 分钟前
防御保护07-08
运维·服务器
zzywxc7871 小时前
深入探讨AI在测试领域的三大核心应用:自动化测试框架、智能缺陷检测和A/B测试优化,并通过代码示例、流程图和图表详细解析其实现原理和应用场景。
运维·人工智能·低代码·架构·自动化·流程图·ai编程
ARM+FPGA+AI工业主板定制专家1 小时前
基于ARM+FPGA多通道超声信号采集与传输系统设计
linux·人工智能·fpga开发·rk3588·rk3568·codesys