Saya pada contoh besar di server EC2 Amazon. Saya menjalankan perintah df dan mendapatkan:
root@db:~# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 9.9G 9.1G 284M 98% /
tmpfs 3.8G 0 3.8G 0% /lib/init/rw
varrun 3.8G 116K 3.8G 1% /var/run
varlock 3.8G 0 3.8G 0% /var/lock
udev 3.8G 80K 3.8G 1% /dev
tmpfs 3.8G 0 3.8G 0% /dev/shm
/dev/sdb 414G 957M 392G 1% /mnt
/dev/sdf 50G 12G 35G 26% /byp
/dev/sdk 99G 31G 63G 33% /backups
Saya kemudian menjalankan perintah du dan mendapatkan:
root@db:/# du -s -h /*
31G /backups
5.5M /bin
136K /boot
12G /byp
80K /dev
5.8M /etc
12K /home
70M /lib
11M /lib32
0 /lib64
16K /lost+found
759M /mnt
4.0K /opt
du: cannot access `/proc/6917/task/6917/fd/4': No such file or directory
du: cannot access `/proc/6917/fd/4': No such file or directory
0 /proc
31M /root
7.7M /sbin
4.0K /selinux
4.0K /srv
0 /sys
11M /tmp
1.1G /usr
114M /var
Jika Anda perhatikan, ketika Anda menambahkan semua ukuran pada output perintah du direktori non-mount, Anda tidak akan mendekati 9.1G seperti yang terlihat pada perintah df.
Apakah ini berarti saya memiliki disk yang buruk? Jika demikian, bagaimana saya bisa memperbaikinya?
lsof +L1
Kadang-kadang dapat bekerja lebih baik daripada itu ...Ada banyak alasan du tidak sama df. Lihat jawaban untuk pertanyaan ini .
Beberapa mount overlay, banyak file kecil dan ukuran blok yang lebih besar, dan file yang dihapus masih digunakan. Mount overlay adalah ketika Anda memasang sistem file pada titik mount yang memiliki file di dalamnya, jadi du tidak melihatnya.
Perbedaan utama antara keduanya adalah bahwa df baru saja memeriksa superblock dan mempercayainya, sedangkan du memindai semua file yang dapat dilihat, dan menambahkannya. Lihat tautan IBM ini untuk informasi tentang superblok.
sumber
Selalu gunakan opsi -x dengan du ketika Anda mengejar masalah seperti ini. Itu membuat du dari cross filesystem.
sumber