Was ist der Befehl Unix-du-Algorithmus verwendet zu berechnen Speicherplatz?

StackOverflow https://stackoverflow.com/questions/4313065

  •  29-09-2019
  •  | 
  •  

Frage

Ich habe versucht, du zu berechnen Plattennutzung auf einem einzigen Verzeichnis heute. Die Größe des Verzeichnisses ist 6GB und es dauerte die folgende Höhe der Zeit zu berechnen:

prompt> time du -sh .
6.0G   .

real    1m32.405s
user    0m2.053s
sys     0m16.552s

Was ist der Algorithmus Unix-Befehl du Anwendungen zu berechnen Speicherplatz? Warum ist es so langsam? Gibt es Alternativen Speicherplatz effizienter zu berechnen? Die Plattform des Aufrufs ist Sun. Das Verzeichnis für die Größe berechnet wurde, ist NFS montiert ist.

War es hilfreich?

Lösung

Ich denke, es ist nur rekursiv das Verzeichnis geht, während die Addition der Größe der Dateien gefunden. Ganz einfach, aber natürlich braucht es Zeit. Es könnte sein, schneller, wenn das Dateisystem diese Vorgänge macht schneller.

Andere Tipps

du hat alle Verzeichnisse aufzulisten und jede Datei stat gefunden, so dass Enden mit all lesen über die Platte

, während die Größe der Dateien immer bringt es ihnen und wenn Sie fertig druckt er die Summe

zum Beispiel auf diese ein Verzeichnis mit wie 2 Millionen Dateien auf einem Dateisystem sshfs:

prompt$ time du -sh .
367G    .

real    12m53.093s
user    0m3.848s
sys     0m14.265s

aber wegen für den zweiten Lauf zu Cachen es dauert nur:

prompt$ time du -sh .
367G    .

real    4m56.875s
user    0m4.136s
sys     0m15.257s

Die Geschwindigkeit hängt von Dateien / Verzeichnisse zählen. Wenn Sie ein Verzeichnis mit 6 1Gb-Dateien haben, wird es viel weniger Zeit zu berechnen nehmen. Es berechnet Dateien Größe im angegebenen Verzeichnis und rekursiv für jedes Kind-Verzeichnis.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top