Wie ist es in diesem "cat" -Prozess möglich, dass mehr Bytes geschrieben als gelesen werden?
469
Remi.b
Ich habe den folgenden Bash-Befehl ausgeführt, um mehrere große Dateien zusammenzuführen
cat file1.txt file2.txt file3.txt file4.txt > merged.txt
Der Vorgang ist sehr lang, da die Dateien jeweils etwa 12 GB groß sind. Auf dem activity monitor
(Mac OSX 10.11.3), unter der Registerkarte Disk
, sehe ich den folgenden Eintrag für den Prozess von Interesse
Wie ist es dabei möglich cat
, dass mehr Bytes geschrieben als gelesen werden?
Ich kenne kein OSX, aber der Monitorsupport umfasst möglicherweise den Datenträgerzugriff während des Austauschs. Wenn ein Betriebssystem ein Programm auf eine Disc austauscht, aber es wieder aktiv wird, bevor sein RAM von irgendetwas anderem verwendet wird, wird die Speicherkopie verwendet, um es fortzusetzen, ohne erneut einzulesen.
AFH vor 7 Jahren
0
Ich kenne OSX auch nicht und meine Spekulation ist, dass die "Geschriebenen" Daten die Inodes enthalten, die mit zunehmender Belegung der Datei aktualisiert werden. Das wäre nicht in den "Read" -Daten enthalten, da die Metadaten aller außer dem ersten Inode für "cat" unerheblich sind. Entweder kann auf die Datei zugegriffen werden oder nicht, und die Zeitstempel usw. werden von `cat` in den Eingabedateien ignoriert. Die Ausgabedatei, die die Shell erstellt, muss jedoch die Metadaten der Datei in jedem Inode wiedergeben, der für die neue Datei verwendet wird.
Gypsy Spellweaver vor 7 Jahren
0
@GypsySpellweaver - Guter Punkt. Es kann eine Zugriffszeit für das installierte Dateisystem geben. Daher werden unter Umständen nur Zeitstempel für Lesevorgänge aktualisiert, allerdings nur ein paar Mal pro Datei! Aber Sie haben mir noch etwas anderes einfallen lassen: Wenn sich das Ziel in einem Journall-Dateisystem befindet, wird es neben den Daten auch Journal-Schreibvorgänge geben. Ich bin überrascht, dass dies alles zu den 10% Overhead in der Frage beiträgt. Vielleicht sind es nur Unterschiede zwischen den beiden Partitionen, insbesondere der Clustergröße und der Fragmentierung.
AFH vor 7 Jahren
1
Ich kenne auch kein OSX. Ich habe gelesen, dass HFS + keine Dateien mit geringer Dichte unterstützt. aber im Falle eines anderen Dateisystems würde ich spekulieren, dass mindestens eine Eingabedatei (teilweise) spärlich ist, die Ausgabedatei nicht. Wenn ich "cat" eine vollständig spärliche Datei in eine andere Datei (BTRFS-Dateisystem) in Linux ("BTRFS-Dateisystem") verwende, zeigt iotop an, dass der Prozess sehr wenig liest und viel schreibt. Eine spärliche Textdatei ist jedoch ungewöhnlich, daher ist dies nur eine sehr allgemeine Bemerkung von mir.
Kamil Maciorowski vor 6 Jahren
0
Diese Frage sollte umbenannt werden, um nach dem Aktivitätsmonitor zu fragen. Ich sehe keine Daten, die darauf hindeuten, dass mehr geschrieben wurde als gelesen wurde - nur der Aktivitätsmonitor wurde als solcher gemeldet. Zählen Sie die Bytes in der resultierenden Datei und wahrscheinlich ist es die Summe der Eingabedateien.
sage vor 6 Jahren
0
0 Antworten auf die Frage
Verwandte Probleme
-
12
Warum wird der Ordner / winsxs so groß und kann er verkleinert werden?
-
2
Wie viel Datenträgerverbrauch verwenden RAW-Videos?
-
1
Pausieren Sie alle Aufgaben außer x CPU-intensiven Aufgaben
-
6
Möglichkeit, die Größe der Partition sicher zu ändern? Windows XP, NTFS
-
10
Wie kann ich die Bash-Historie durchsuchen und einen Befehl erneut ausführen?
-
2
Kann die Ausgabe eines Befehls an zwei andere Befehle weitergeleitet werden?
-
12
Speicherplatz unter Windows freigeben
-
21
Wie kann ich die Dateisystemnutzung unter Windows visualisieren?
-
8
Benennen Sie eine Gruppe von Dateien mit einem Befehl um
-
2
Warum aktualisiert sich mein Pfad nicht * jetzt *?