Ich wollte einen Pfad von einem Computer in meinem Netzwerk zu einem anderen Computer im selben Netzwerk über eine 100-Mbit / s-Leitung sichern. Dafür habe ich getan
dd if=/local/path of=/remote/path/in/local/network/backup.img
Das gab mir eine sehr niedrige Netzwerkübertragungsgeschwindigkeit von etwa 50 bis 100 kB / s, die für immer gedauert hätte. Also habe ich es gestoppt und beschlossen, es spontan zu zippen, um es viel kleiner zu machen, damit der zu übertragende Betrag geringer ist. So tat ich
dd if=/local/path | gzip > /remote/path/in/local/network/backup.img.gz
Aber jetzt bekomme ich so etwas wie 1 MB / s Netzwerkübertragungsgeschwindigkeit, also einen Faktor von 10 bis 20 schneller. Nachdem ich das bemerkt hatte, testete ich es auf mehreren Pfaden und Dateien, und es war immer dasselbe.
Warum Rohrleitungen dd
durch gzip
auch um einen großen Faktor die Übertragungsraten zu erhöhen , anstatt nur die ByteLength des Stroms um einen großen Faktor zu reduzieren? Ich hatte stattdessen aufgrund des höheren CPU-Verbrauchs beim Komprimieren sogar einen kleinen Rückgang der Übertragungsraten erwartet, aber jetzt bekomme ich ein doppeltes Plus. Nicht, dass ich nicht glücklich wäre, aber ich wundere mich nur. ;)
dd
mit 1 MB / s ... direkt in die Warteleitung gzip
ausgegeben wird. Es hat sehr wenig mit der Blockgröße zu tun.