Zła wydajność du?

12

Myślę, że moje du dowództwo jest zdezorientowane.

% du -shc DIR ...
...
6123941496      total

% du -shc DIR ...
...
6.1G    total

% du -sc --si DIR ...
...
6.6G    total

Próbowałem podać LANG=Ci dwukrotnie sprawdzić wynik w arkuszu kalkulacyjnym. Wygląda na to, że -h już wypisuje dane używając mocy 1000 (--si), a --si daje złą odpowiedź. Myślę, że poprawna odpowiedź powinna wynosić 5,7G dla -h i 6,1G dla --si. Co się tu dzieje?

% du --version
du (GNU coreutils) 8.20
...

% uname -a
Linux XXX 3.9-1-amd64 #1 SMP Debian 3.9.8-1 x86_64 GNU/Linux
Gerry Lufwansa
źródło
3
Podaj rzeczywiste polecenia. Co ...reprezentują? Wygląda na to, że dwukrotnie wykonałeś dokładnie to samo polecenie i uzyskałeś inne wyjście, prawda? Czy przeczytałeś wyjaśnienie modyfikatorów rozmiaru man du?
terdon

Odpowiedzi:

18

Powtórz testy za pomocą --apparent-sizeprzełącznika.

$ du -shc --apparent-size DIR ...

fragment strony du man

--apparent-size
       print  apparent sizes, rather than disk usage; although the apparent size is
       usually smaller, it may be larger due to holes in (`sparse') files, internal 
       fragmentation, indirect blocks, and the like
slm
źródło
1
Ach, więc najwyraźniej -b jest równoważne z '--apparent-size --block-size = 1'. Tęsknie za tym. Prawidłowe użycie „du -shc --apparent-size” daje teraz 5.7G. Dzięki!
Gerry Lufwansa,
@GerryLufwansa - tak, kiedy zaczynasz miksować w różnych systemach plików lub montowanych CIFS, staje się to naprawdę zauważalne. Zawsze używam albo -balbo --apparent-size.
slm
... a różnica może być naprawdę ogromna w przypadku systemów HSM, w których migrowane pliki zgłaszają 0 (lub coś w rodzaju kilku kB) bez --apparent-size.
Ansgar Esztermann
Jakieś rozwiązanie dla dusystemu Mac OS X?
Alec Jacobson,