df -h可快速查看各分区总容量、已用、剩余及使用率,重点关注Use%≥90%的分区;再用du -sh --max-depth=1分层定位大目录,并结合df -i排查inode耗尽、lsof +L1揪出已删未释放文件,从而准确定位真实瓶颈。

直接用 df -h 查分区整体使用情况,再用 du -sh --max-depth=1 定位大目录,两者结合才能准确定位真实瓶颈。
先用 df 锁定问题分区和异常类型
运行 df -h 查所有挂载点,重点关注 Use% ≥ 90% 的分区(如 /、/var、/home)。如果某分区显示已用 98%,但实际没存那么多文件,就要怀疑是不是 inode 耗尽或“已删未释放”文件在占空间。
对高占用分区补查 inode:运行 df -i /var。若 IUse% 接近 100%,说明小文件过多(比如日志碎片、容器临时文件),即使磁盘块还有余量,也无法新建文件。
-
df -h /var——只看/var所在分区的空间 -
df -Th——同时显示文件系统类型(ext4/xfs/tmpfs)和人类可读单位 -
df -h -x tmpfs -x devtmpfs——排除内存伪文件系统,让结果更聚焦真实磁盘
再用 du 分层定位大目录
进入问题分区根目录(如 cd /var),执行:
du -sh --max-depth=1 2>/dev/null | sort -hr
它会列出一级子目录总大小,快速识别大户(如 /var/log、/var/cache)。对排前几位的目录继续下钻:
du -sh log/* 2>/dev/null | sort -hr | head -5
加 --exclude 可跳过虚拟路径,避免干扰:
du -sh --max-depth=1 --exclude=/proc --exclude=/sys /var
-
-s表示只汇总,不展开子项;-h让数字易读;--max-depth=1控制只看当前层 - 遇到极多小文件时,
du可能卡顿,这时改用find更快
用 find 快速抓大文件
当目录结构深、小文件多,du 扫描慢,直接按大小筛选更高效:
Linux AI 服务器 — 将 Linux 服务器转换为本地 AI 推理集群。使用 systemd、NVIDIA CUDA 实现无头 Linux AI,零 GUI 开销。
find /var -type f -size +500M -exec ls -lh {} \; 2>/dev/null
限定范围提速,比如只查日志中大于 100MB 的文件:
find /var/log -name "*.log" -size +100M -exec ls -lh {} \;
对查到的大文件,用 lsof -nP | grep "filename" 看是否被进程持续写入(如 Java 应用的 catalina.out),这类文件不能随便删。
最后用 lsof 找“幽灵文件”
如果 df 显示已用 95%,但所有 du 加起来只有 60%,差值就是“df 看得见、du 找不到”的空间——大概率是已删除但进程仍打开的文件。
运行:sudo lsof +L1(需 root 权限)
输出中类似这样的一行就是线索:
java 1234 root 1w REG 8,1 2.1G 123456 /var/log/app.log (deleted)
对应 PID 的服务重启后,空间立即释放。不要直接 kill -9,除非确认无影响。

















