ncdu 和 du 显示的大小与 df 不同

ncdu 和 du 显示的大小与 df 不同

我有一个运行 Kubernetes 设置的 Raspberry PI 集群,并且主节点最近停止了调度 pod,因为根文件系统上的磁盘空间不足(我删除了阻止主节点上的 pod 调度的污点)。

这是输出df

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/root        29G   24G  4.3G  85% /
devtmpfs        3.6G     0  3.6G   0% /dev
tmpfs           3.7G     0  3.7G   0% /dev/shm
tmpfs           3.7G  1.3M  3.7G   1% /run
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
tmpfs           3.7G     0  3.7G   0% /sys/fs/cgroup
/dev/sda1       229G   60M  217G   1% /mnt/nfs/storage-04-ssd-250gb
/dev/sdb1       229G   60M  217G   1% /mnt/nfs/storage-01-ssd-250gb
/dev/sdc1       7.3T  2.0T  5.3T  28% /mnt/nfs/storage-03-hdd-8tb
/dev/mmcblk0p1  253M   54M  199M  22% /boot
tmpfs           758M     0  758M   0% /run/user/1000

所以我在网上搜索分析文件系统使用情况的方法。我主要找到建议使用du和的文章ncdu

输出来自du

$ sudo du -cbsh --exclude /mnt /
du: cannot access '/proc/23440/task/23440/fd/3': No such file or directory
du: cannot access '/proc/23440/task/23440/fdinfo/3': No such file or directory
du: cannot access '/proc/23440/fd/4': No such file or directory
du: cannot access '/proc/23440/fdinfo/4': No such file or directory
7.3G    /
7.3G    total

输出来自ncdu

sudo ncdu -er / --exclude /mnt
    4.0 GiB [##########] /var                                                                                                                                                                              
    2.5 GiB [######    ] /usr
  687.0 MiB [#         ] /lib
  104.2 MiB [          ] /opt
   53.6 MiB [          ] /boot.bak
   53.6 MiB [          ] /boot
   30.3 MiB [          ] /home
   11.5 MiB [          ] /sbin
   11.1 MiB [          ] /bin
    5.1 MiB [          ] /etc
    1.2 MiB [          ] /run
   44.0 KiB [          ] /root
   36.0 KiB [          ] /tmp
e  16.0 KiB [          ] /lost+found
e   4.0 KiB [          ] /srv
e   4.0 KiB [          ] /media
    0.0   B [          ] /sys
.   0.0   B [          ] /proc
    0.0   B [          ] /dev
<   0.0   B [          ]  mnt

ncdu和都du显示相同的值,但这些值与输出不同df。我预计它们都显示磁盘使用量达到 24G,正如df.

我已经在网上检查过,看看造成这种差异的可能原因是什么,我主要发现提到进程仍在使用的已删除文件仍然占用磁盘空间,但我的系统上似乎没有任何这些。

$ sudo lsof | grep deleted
$ #outputs nothing

如何找出根挂载上的 24G 空间被什么占用了?

笔记:在执行中ncdudu我排除了该/mnt目录,因为它只安装了一些外部驱动器

答案1

您可能/mnt在磁盘未安装时进行了写入。

在这种情况下,您应该先卸载外部磁盘,然后检查所有目录是否/mnt为空。

相关内容