Use%是已用空间占总容量(Size)的百分比,不是剩余百分比;剩余百分比=100%−Use%,可直接反推;它跨文件系统一致,且已包含root保留空间,是判断磁盘是否告警的核心指标。

df -h 直接输出 Use% 列,就是你要的“具体分区剩余百分比”——它显示的是已用百分比,剩余百分比 = 100% − Use%,无需额外计算。
df -h 的 Use% 是什么,为什么不能直接当“剩余率”用?
Use% 是文件系统已用空间占总容量(Size)的百分比,不是剩余空间占比。它本身不等于“剩余百分比”,但能立刻反推出剩余比例。比如 Use% 显示 87%,那剩余就是 13%;显示 99%,就只剩 1%。
常见误解是以为 Avail 列除以 Size 才算“剩余百分比”——其实 df 不提供这个值,也不需要:Use% 已隐含全部信息,且更稳定(Avail 受 root 保留块、配额、inode 耗尽等影响,可能和实际可写空间不一致)。
-
df -h输出中Use%是唯一标准化、跨文件系统一致的利用率指标 -
Avail值 ≠ 剩余百分比,它只是字节数,且已扣除 ext 默认 5% 保留空间 - 某些场景(如 xfs 或启用了 quota 的分区),
Use%仍准确反映容量占比,但普通用户可能无法写满到该数值
怎么快速定位 Use% ≥90% 的高危分区?
运维中真正关心的不是“所有分区剩余多少”,而是“哪个快满了”。df -h 默认按挂载点排序,肉眼扫一遍 Use% 列效率低,用管道过滤更可靠:
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
-
df -h | awk '$5 > 90 {print}'—— 只输出使用率超 90% 的行($5对应 Use% 列) -
df -h | sort -k5,5nr | head -n 5—— 按 Use% 降序排,取前 5 名 - 注意:NFS 挂载点可能因缓存延迟,
Use%暂时不准,需结合服务端确认
为什么 df -h / 和 df -h 输出不一样?
df -h / 只查根分区(即挂载在 / 的那个文件系统),而 df -h 默认列出所有已挂载文件系统,包括 tmpfs、devtmpfs 等虚拟内存文件系统。这些虚拟文件系统显示 Use% 毫无意义(比如 /run 占用 2%,不代表磁盘快满)。
- 查真实磁盘分区,优先用
df -h -x tmpfs -x devtmpfs过滤掉虚拟文件系统 - 想确认某个路径属于哪个分区,用
df -h /path/to/dir,它会自动跳转到对应挂载点并显示该分区的Use% -
df -hT加上文件系统类型,可辅助判断:ext4/xfs 是真实磁盘,overlay/btrfs 可能是容器层,需穿透查看底层
Use% 显示 100% 但 Avail 非零?
这是 ext 类文件系统(ext2/3/4)的保留机制:默认为 root 用户保留 5% 空间,防止系统彻底卡死。Use% 计算时已包含这部分,所以即使 Use% 达到 100%,Avail 仍可能显示几 GB——但普通用户进程已无法写入。
- 检查保留比例:
tune2fs -l /dev/sdXN | grep "Reserved block count" - 临时调整(谨慎!):
tune2fs -m 1 /dev/sdXN把保留空间降到 1% - 更常见的真问题其实是 inode 耗尽:
df -i查看IUse%,若接近 100%,清小文件或日志才是关键
真正要盯住的永远是 Use% 数值本身,而不是把它换算成“剩余百分比”——因为一旦它越过阈值(比如 95%),你该做的不是算还剩多少,而是立刻用 du -sh * | sort -hr 进去查大目录,或者看 df -i 排查 inode。

















