Quería hacer una copia de seguridad de una ruta desde una computadora en mi red a otra computadora en la misma red a través de una línea de 100 Mbit / s. Por esto hice
dd if=/local/path of=/remote/path/in/local/network/backup.img
lo que me dio una velocidad de transferencia de red muy baja de alrededor de 50 a 100 kB / s, lo que me habría llevado una eternidad. Así que lo detuve y decidí intentar comprimirlo sobre la marcha para hacerlo mucho más pequeño y que la cantidad a transferir sea menor. Así que lo hice
dd if=/local/path | gzip > /remote/path/in/local/network/backup.img.gz
Pero ahora obtengo algo así como una velocidad de transferencia de red de 1 MB / s, por lo que es un factor de 10 a 20 más rápido. Después de notar esto, probé esto en varias rutas y archivos, y siempre fue lo mismo.
¿Por qué la tubería dd
a través gzip
también aumentan las tasas de transferencia por un factor grande en lugar de tan sólo reducir el ByteLength de la corriente por un factor de gran tamaño? En cambio, esperaba una pequeña disminución en las tasas de transferencia, debido al mayor consumo de CPU durante la compresión, pero ahora obtengo un doble plus. No es que no sea feliz, pero me pregunto. ;)
dd
está saliendo a 1MB / s ... directamente en la gzip
tubería de espera . Tiene muy poco que ver con el tamaño del bloque.