linux中没有“节点分配详细走势图”,df -i仅提供inode使用率快照,需通过定时采集(如shell脚本)结合外部工具(如gnuplot)绘图;sar -v可间接反映inode分配趋势,但需提前启用sysstat。

Linux 中没有“节点分配详细走势图”这个标准概念——如果你指的是 inode(索引节点)的使用情况,那它确实有明确的统计维度,但本身不带“走势图”;所谓“图”,只能靠外部工具采样后绘制,系统原生命令只提供快照或历史数据。
为什么 df -i 只显示当前 inode 使用率,不是走势图
df -i 是查看 inode 分配与使用现状最直接的命令,但它只返回单次快照:
- 输出中
Used和Available是当前已用/剩余 inode 数,IUse%是百分比 - 它不记录历史,也不自动绘图,所谓“走势”必须靠你定期采集 + 外部工具(如 gnuplot、grafana 或简单 shell 脚本 + CSV)生成
- 常见误区:把
df -h(看磁盘空间)和df -i(看 inode)混淆,二者单位、含义、瓶颈场景完全不同
如何用脚本持续采集 inode 使用率做趋势基础
要获得可画图的数据,得先有时间序列。一个轻量级做法是每分钟记录一次关键挂载点的 IUse%:
PyCharm 2026.2.0.1 Linux版提供 JetBrains 官方 2026.2.0.1 版本安装包,适合需要指定 PyCharm 版本进行 Python 项目开发、运行和调试的用户。
while true; do
date +"%Y-%m-%d %H:%M" >> /tmp/inode.log
df -i / | awk 'NR==2 {print $5}' >> /tmp/inode.log
sleep 60
done
说明:
-
df -i /针对根文件系统;若需多个路径(如/home、/var),改用df -i / /home /var -
awk 'NR==2 {print $5}'提取第二行(即目标挂载点)的第五列IUse%,避免表头干扰 - 输出格式为 “时间\n使用率\n”,方便后续用
gnuplot或 Excel 绘图 - 注意:长期运行需加日志轮转,否则
/tmp/inode.log会无限增长
用 sar 查看历史 inode 相关活动(间接但有用)
sar 本身不直接报告 inode 使用率,但它能反映 inode 耗尽的典型副作用——频繁的 mkdir、open、unlink 等系统调用激增,以及 file-nr(已分配 inode 数)的变化趋势:
- 确认
sar已启用并收集数据:sudo systemctl status sysstat,且/etc/default/sysstat中ENABLED="true" - 查看最近 24 小时内文件系统活动概览:
sar -v 1 10(每秒采样 10 次),关注file-nr列 —— 它表示当前已分配的 inode 总数(非使用率) - 若
file-nr持续逼近inode-max(可通过cat /proc/sys/fs/inode-max查看上限),说明 inode 接近耗尽,需结合df -i定位具体挂载点 - 注意:
sar -v数据需提前开启采集,无法回溯未开启时段
真正“走势图”的生成不在 Linux 基础命令职责范围内;df -i 给你准确的当下状态,sar -v 给你历史尺度上的 inode 分配趋势线索,而连续采集 + 外部绘图才是补全“走势”的实际路径。最容易被忽略的是:inode 耗尽往往不表现为磁盘满,而是 No space left on device 错误却 df -h 显示空间充裕——此时必须立刻跑 df -i。










