ncdu와 du는 df와 다른 크기를 표시합니다.

ncdu와 du는 df와 다른 크기를 표시합니다.

Kubernetes 설정을 실행하는 Raspberry PI 클러스터가 있고, 루트 파일 시스템의 디스크 공간 부족으로 인해 마스터 노드가 최근 포드 예약을 중지했습니다(마스터 노드에서 포드 예약을 방해하는 오염을 제거했습니다).

이것이 출력이다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. 나는 둘 다 df.

이러한 불일치의 가능한 이유가 무엇인지 온라인으로 확인했으며 삭제된 파일이 여전히 디스크 공간을 차지하고 있는 프로세스에서 여전히 사용되고 있다는 언급을 대부분 발견했지만 이러한 내용은 없는 것 같습니다. 내 시스템.

$ sudo lsof | grep deleted
$ #outputs nothing

루트 마운트에서 무엇이 24G 공간을 차지하고 있는지 확인하는 방법은 무엇입니까?

노트: 실행 시 일부 외부 드라이브만 마운트했기 때문에 이 디렉터리를 제외했습니다 ncdu.du/mnt

답변1

/mnt디스크가 마운트되지 않은 동안 기록했을 수 있습니다 .

이 경우 먼저 외부 디스크를 마운트 해제한 후 모든 디렉터리가 /mnt비어 있는지 확인해야 합니다.

관련 정보