发布于2026-05-21 阅读(0)
扫一扫,手机访问
如果你在Linux服务器上执行过磁盘空间检查,大概率遇到过这个让人困惑的场景:df -h显示根分区快满了,但用du -sh /一汇总,发现实际文件占用的空间远没那么多。这可不是什么bug,而是因为df和du这两个命令,从设计原理上就在看不同的东西。

简单来说,df读取的是文件系统超级块里记录的“已分配块总数”,而du则是老老实实遍历目录树,去统计每个文件“实际占用的块数”。理解了这个根本差异,很多问题就迎刃而解了。
这种不一致通常指向几种情况。最常见的就是“文件被删除了,但空间没释放”。想象一下,一个进程正在写入一个大日志文件,你直接用rm命令把它删了。只要这个进程的文件句柄没关闭,它就会继续向磁盘写入数据。df命令看到这些磁盘块仍然被占用,所以统计在内;而du命令因为找不到对应的文件路径,自然就忽略了这部分空间。
类似的情况也常出现在系统日志(如/var/log/journal)或Docker容器的存储驱动(如overlay2)中,大量被删除但未释放的日志或缓存层也会导致差异。
另一个常见原因是挂载点。du -sh /命令默认不会跨文件系统统计。如果你的/home目录单独挂载在另一个分区上,那么du就不会把它计入根目录的总大小。而df显示的则是/所在分区的整体使用率,两者自然对不上。
快速排查可以分两步走:先用lsof +L1命令查看是否有状态为“deleted”的已打开文件;再用df -hT确认一下各个目录的挂载点是否独立。
du命令默认会递归扫描所有子目录,包括隐藏文件。一旦遇到权限不足的目录、网络文件系统(NFS)挂载点或者损坏的符号链接,就可能阻塞或报错,导致扫描过程异常缓慢。
有几个实用的技巧可以帮你安全地提速:
--max-depth=1参数,只查看一级子目录的大小,比如du -sh --max-depth=1 /var。/dev/null,跳过那些因权限问题无法访问的目录:du -sh --max-depth=1 /var 2>/dev/null。--exclude参数将其排除:du -sh --max-depth=1 --exclude=/var/lib/docker /var。du -sh /var/* 2>/dev/null | sort -hr | head -n 10。顺便提一句,du -s(以块为单位)和du -sh(以人类可读格式)在性能上几乎没有差别,单位转换的计算开销可以忽略不计。真正的瓶颈永远在磁盘I/O速度和文件系统的权限检查上。
这是典型的inode耗尽问题。在Linux文件系统中,每个文件或目录(哪怕是一个空文件)都需要消耗一个inode。当inode被用光时,即使磁盘还有剩余空间,系统也会报告“No space left on device”,导致无法创建新文件。
遇到这种情况,可以按以下步骤排查:
df -i确认是哪个挂载点的inode使用率达到了100%。find /path -xdev -type f | cut -d/ -f1-3 | sort | uniq -c | sort -nr | head -n 5。/var/spool/postfix/maildrop)、临时目录(如/tmp下堆积的session文件)以及容器运行时产生的海量日志文件。需要注意的是,对于ext4这类文件系统,inode的数量是在使用mkfs创建文件系统时就固定下来的,无法在线扩容。解决办法要么是清理掉大量小文件,要么就只能备份数据后重建文件系统并分配更多的inode。
ncdu可以看作是du的交互式增强版。它提供了键盘导航、实时排序、删除确认等功能,在交互式定位大文件或目录时非常方便。
但是,必须清楚ncdu的本质:它仍然是基于du的逻辑,只统计文件系统中可见的文件。这意味着它无法反映那些已被删除但未释放的空间,也无法显示文件系统级别的元数据开销,比如日志(journal)或预留块(reserved blocks)。
sudo apt install ncdu,在RHEL/CentOS上使用sudo yum install ncdu。ncdu /var即可开始扫描。在交互界面中,按d键可以删除选中的项目(请谨慎操作)。/boot分区只剩下20MB,也不会警告你tmpfs(内存文件系统)快满了——这些全局的、文件系统层面的状态,依然是df命令的职责范围。最后,分享一个容易被忽略的排查习惯:很多运维人员习惯只盯着df -h看空间使用率,却忘了结合df -i查看inode使用情况,以及使用df -x tmpfs来排除内存文件系统的干扰。当遇到“磁盘明明有空间却无法写入”的诡异问题时,后面这两个命令往往是破案的关键。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
4
5
6
7
8
9