Volevo eseguire il backup di un percorso da un computer nella mia rete a un altro computer nella stessa rete su una linea a 100 Mbit / s. Per questo l'ho fatto
dd if=/local/path of=/remote/path/in/local/network/backup.img
che mi ha dato una velocità di trasferimento di rete molto bassa di qualcosa da 50 a 100 kB / s, che avrebbe richiesto un'eternità. Così l'ho fermato e ho deciso di provare a fare un gzipping al volo per renderlo molto più piccolo in modo che la quantità da trasferire fosse inferiore. Così ho fatto
dd if=/local/path | gzip > /remote/path/in/local/network/backup.img.gz
Ma ora ottengo qualcosa come 1 MB / s velocità di trasferimento di rete, quindi un fattore da 10 a 20 più veloce. Dopo aver notato questo, ho provato questo su diversi percorsi e file, ed è sempre stato lo stesso.
Perché piping dd
attraverso gzip
anche aumentare i tassi di trasferimento di un fattore di grandi dimensioni invece di ridurre solo la potenza del flusso di un fattore importante? Mi aspettavo anche una leggera diminuzione dei tassi di trasferimento, a causa del maggiore consumo di CPU durante la compressione, ma ora ho un doppio vantaggio. Non che io non sia felice, ma mi sto solo chiedendo. ;)
dd
sta uscendo a 1 MB / s ... proprio nell'attesa gzip
tubo. Ha ben poco da fare con le dimensioni del blocco.