
Ziemlich schneller Festplattennutzungsanalysator geschrieben in Go.
GDU ist hauptsächlich für SSD -Scheiben vorgesehen, bei denen es die parallele Verarbeitung vollständig nutzen kann. HDDs funktionieren jedoch auch, aber der Leistungsgewinn ist nicht so groß.
Gehen Sie für die Seite der Veröffentlichungen und laden Sie das Binärdatum für Ihr System herunter.
Verwenden von Curl:
curl -L https://github.com/dundee/gdu/releases/latest/download/gdu_linux_amd64.tgz | tar xz
chmod +x gdu_linux_amd64
mv gdu_linux_amd64 /usr/bin/gdu
Auf der Installationsseite finden Sie andere Möglichkeiten, wie Sie GDU in Ihrem System installieren.
Oder Sie können GDU direkt über Docker verwenden:
docker run --rm --init --interactive --tty --privileged --volume /:/mnt/root ghcr.io/dundee/gdu /mnt/root
gdu [flags] [directory_to_scan]
Flags:
--config-file string Read config from file (default is $HOME/.gdu.yaml)
-g, --const-gc Enable memory garbage collection during analysis with constant level set by GOGC
--enable-profiling Enable collection of profiling data and provide it on http://localhost:6060/debug/pprof/
-L, --follow-symlinks Follow symlinks for files, i.e. show the size of the file to which symlink points to (symlinks to directories are not followed)
-h, --help help for gdu
-i, --ignore-dirs strings Absolute paths to ignore (separated by comma) (default [/proc,/dev,/sys,/run])
-I, --ignore-dirs-pattern strings Absolute path patterns to ignore (separated by comma)
-X, --ignore-from string Read absolute path patterns to ignore from file
-f, --input-file string Import analysis from JSON file
-l, --log-file string Path to a logfile (default "/dev/null")
-m, --max-cores int Set max cores that Gdu will use. 12 cores available (default 12)
-c, --no-color Do not use colorized output
-x, --no-cross Do not cross filesystem boundaries
--no-delete Do not allow deletions
-H, --no-hidden Ignore hidden directories (beginning with dot)
--no-mouse Do not use mouse
--no-prefix Show sizes as raw numbers without any prefixes (SI or binary) in non-interactive mode
-p, --no-progress Do not show progress in non-interactive mode
-u, --no-unicode Do not use Unicode symbols (for size bar)
-n, --non-interactive Do not run in interactive mode
-o, --output-file string Export all info into file as JSON
-r, --read-from-storage Read analysis data from persistent key-value storage
--sequential Use sequential scanning (intended for rotating HDDs)
-a, --show-apparent-size Show apparent size
-d, --show-disks Show all mounted disks
-C, --show-item-count Show number of items in directory
-M, --show-mtime Show latest mtime of items in directory
-B, --show-relative-size Show relative size
--si Show sizes with decimal SI prefixes (kB, MB, GB) instead of binary prefixes (KiB, MiB, GiB)
--storage-path string Path to persistent key-value storage directory (default "/tmp/badger")
-s, --summarize Show only a total in non-interactive mode
-t, --top int Show only top X largest files in non-interactive mode
--use-storage Use persistent key-value storage for analysis data (experimental)
-v, --version Print version
--write-config Write current configuration to file (default is $HOME/.gdu.yaml)
Basic list of actions in interactive mode (show help modal for more):
↑ or k Move cursor up
↓ or j Move cursor down
→ or Enter or l Go to highlighted directory
← or h Go to parent directory
d Delete the selected file or directory
e Empty the selected directory
n Sort by name
s Sort by size
c Show number of items in directory
? Show help modal
gdu # analyze current dir
gdu -a # show apparent size instead of disk usage
gdu --no-delete # prevent write operations
gdu <some_dir_to_analyze> # analyze given dir
gdu -d # show all mounted disks
gdu -l ./gdu.log <some_dir> # write errors to log file
gdu -i /sys,/proc / # ignore some paths
gdu -I '.*[abc]+' # ignore paths by regular pattern
gdu -X ignore_file / # ignore paths by regular patterns from file
gdu -c / # use only white/gray/black colors
gdu -n / # only print stats, do not start interactive mode
gdu -np / # do not show progress, useful when using its output in a script
gdu -nps /some/dir # show only total usage for given dir
gdu -nt 10 / # show top 10 largest files
gdu / > file # write stats to file, do not start interactive mode
gdu -o- / | gzip -c >report.json.gz # write all info to JSON file for later analysis
zcat report.json.gz | gdu -f- # read analysis from file
GOGC=10 gdu -g --use-storage / # use persistent key-value storage for saving analysis data
gdu -r / # read saved analysis data from persistent key-value storage
GDU hat drei Modi: Interaktiv (Standard), nicht interaktiv und exportieren.
Der nicht-interaktive Modus wird automatisch gestartet, wenn TTY nicht erkannt wird (unter Verwendung von Go-isatty), beispielsweise wenn die Ausgabe in eine Datei geleitet wird oder mit einem Flag explizit gestartet werden kann.
Der Exportmodus (Flag -o ) gibt alle Verwendungsdaten als JSON aus, die später mit dem Flag -f geöffnet werden können.
Harte Links werden nur einmal gezählt.
Dateien und Verzeichnisse können durch ein Ein-Charakter-Flag mit folgenden Bedeutung vorangestellt werden:
! Beim Lesen dieses Verzeichnisses trat ein Fehler auf.
. Beim Lesen eines Unterverzeichnisses ist ein Fehler aufgetreten, und die Größe kann nicht korrekt sein.
@ Datei ist Symlink oder Socket.
H Die gleiche Datei wurde bereits gezählt (harter Link).
e Verzeichnis ist leer.
GDU kann YAML -Konfigurationsdatei lesen (und schreiben).
$HOME/.config/gdu/gdu.yaml und $HOME/.gdu.yaml werden standardmäßig auf die Präsiense der Konfigurationsdatei überprüft.
Siehe die vollständige Liste aller Konfigurationsoptionen.
echo "no-color: true" >> ~/.gdu.yaml
sorting:
by: name // size, name, itemCount, mtime
order: desc
echo "change-cwd: true" >> ~/.gdu.yaml
gdu --write-config
Es gibt Wüste, wie Terminals gefärbt werden können. Einige GDU -Primitive (wie Basistext) fügen verschiedene Farbschemata hinzu, die ausgewählte/hervorgehobene Zeile jedoch nicht.
Wenn das Standard -Look nicht ausreicht, kann er in der Konfigurationsdatei geändert werden, z. B.:
style:
selected-row:
text-color: black
background-color: "#ff0000"
GDU kann Elemente im Hintergrund löschen und die Benutzeroberfläche nicht für zusätzliche Arbeiten blockieren. Zu aktivieren:
echo "delete-in-background: true" >> ~/.gdu.yaml
Verzeichnisartikel können auch parallel gelöscht werden, was die Löschgeschwindigkeit erhöhen kann. Zu aktivieren:
echo "delete-in-parallel: true" >> ~/.gdu.yaml
GDU versucht die Leistung und den Speicherverbrauch in Einklang zu bringen.
Wenn weniger Speicher von GDU verwendet wird als der gesamte freie Speicher des Hosts, wird während der Analysephase vollständig deaktiviert, um die maximale Geschwindigkeit zu erreichen.
Andernfalls ist GC aktiviert. Je mehr Speicher verwendet wird und je weniger Speicher frei ist, desto häufiger wird der GC.
Wenn Sie eine manuelle Steuerung über die Müllsammlung wünschen, können Sie das Flag --const-gc / -g verwenden. Während der Analysephase wird die Müllsammlung mit konstantem Grad an Aggressivität durchgeführt. Infolgedessen wird die Analyse etwa 25% langsamer sein und etwa 30% weniger Speicher verbrauchen. Um die Ebene zu ändern, können Sie die GOGC -Umgebungsvariable festlegen, um anzugeben, wie oft die Müllsammlung stattfindet. Niedrigerer Wert (als 100) bedeutet, dass GC häufiger ausgeführt wird. Höher bedeutet seltener. Die negative Zahl stoppt GC.
Beispiel Ausführen von GDU mit konstantem GC, aber nicht so aggressiv wie Standard:
GOGC=200 gdu -g /
GDU kann die Analysedaten auf anhaltenden Schlüsselwertspeicher anstelle des Speicheres speichern. GDU läuft viel langsamer (ca. 10x), sollte jedoch viel weniger Speicher verbrauchen (wenn auch kleine GOGC verwendet wird). GDU kann auch mit den gespeicherten Daten wieder eröffnet werden. Derzeit wird nur BadgerDB als Schlüsselwertspeicher (eingebettet) unterstützt.
GOGC=10 gdu -g --use-storage / # saves analysis data to key-value storage
gdu -r / # reads just saved data, does not run analysis again
make install-dev-dependencies
make test
GDU kann Profilerierungsdaten sammeln, wenn das --enable-profiling Flag eingestellt ist. Die Daten werden über den eingebetteten HTTP -Server auf URL http://localhost:6060/debug/pprof/ bereitgestellt.
Sie können dann EG go tool pprof -web http://localhost:6060/debug/pprof/heap verwenden, um das Heap -Profil als SVG -Bild in Ihrem Webbrowser zu öffnen.
Benchmarks wurden mit einem 50G -Verzeichnis (100K -Verzeichnis, 400k -Dateien) auf 500 GB SSD unter Verwendung von Hyperfein durchgeführt. Weitere Informationen finden Sie unter benchmark -Ziel in Makefile.
Dateisystem -Cache wurde mithilfe sync; echo 3 | sudo tee /proc/sys/vm/drop_caches .
| Befehl | Bedeutet] | Min [s] | Max [s] | Relativ |
|---|---|---|---|---|
diskus ~ | 3,126 ± 0,020 | 3.087 | 3.155 | 1.00 |
gdu -npc ~ | 3,132 ± 0,019 | 3.111 | 3.173 | 1,00 ± 0,01 |
gdu -gnpc ~ | 3,136 ± 0,012 | 3.112 | 3.155 | 1,00 ± 0,01 |
pdu ~ | 3,657 ± 0,013 | 3.641 | 3.677 | 1,17 ± 0,01 |
dust -d0 ~ | 3,933 ± 0,144 | 3.849 | 4.213 | 1,26 ± 0,05 |
dua ~ | 3,994 ± 0,073 | 3.827 | 4.134 | 1,28 ± 0,02 |
gdu -npc --use-storage ~ | 12,812 ± 0,078 | 12.644 | 12.912 | 4,10 ± 0,04 |
du -hs ~ | 14,120 ± 0,213 | 13.969 | 14.703 | 4,52 ± 0,07 |
duc index ~ | 14,567 ± 0,080 | 14.385 | 14.657 | 4,66 ± 0,04 |
ncdu -0 -o /dev/null ~ | 14,963 ± 0,254 | 14.759 | 15.637 | 4,79 ± 0,09 |
| Befehl | Mean [MS] | Min [MS] | Max [MS] | Relativ |
|---|---|---|---|---|
pdu ~ | 226,6 ± 3,7 | 219.6 | 231.2 | 1.00 |
diskus ~ | 227,7 ± 5,2 | 221.6 | 239.9 | 1,00 ± 0,03 |
dust -d0 ~ | 400,1 ± 7,1 | 386.7 | 409.4 | 1,77 ± 0,04 |
dua ~ | 444,9 ± 2,4 | 442.4 | 448.9 | 1,96 ± 0,03 |
gdu -npc ~ | 451,3 ± 3,8 | 445.9 | 458.5 | 1,99 ± 0,04 |
gdu -gnpc ~ | 516,1 ± 6,7 | 503.1 | 527.5 | 2,28 ± 0,05 |
du -hs ~ | 905,0 ± 3,9 | 901.2 | 913.4 | 3,99 ± 0,07 |
duc index ~ | 1053,0 ± 5,1 | 1046.2 | 1064.1 | 4,65 ± 0,08 |
ncdu -0 -o /dev/null ~ | 1653,9 ± 5,7 | 1645.9 | 1663.0 | 7,30 ± 0,12 |
gdu -npc --use-storage ~ | 9754,9 ± 688,7 | 8403.8 | 10427.4 | 43,04 ± 3,12 |
C (LTS) oder zig (stabil) geschrieben wurdeRust mit Schnittstelle ähnlich wie GDU (und NCDU)Rust geschriebenRust , das Baum wie Strukturen der Festplattennutzung zeigtRust geschrieben wurde und Baum wie Strukturen der Festplattennutzung zeigt HDD -Ikone von Nikita Golubev - Flaticon erstellt