Je voulais sauvegarder un chemin d'un ordinateur de mon réseau à un autre ordinateur du même réseau sur une ligne à 100 Mbit/s. Pour cela, j'ai fait
dd if=/local/path of=/remote/path/in/local/network/backup.img
ce qui me donnait une vitesse de transfert réseau très faible, de l'ordre de 50 à 100 kB/s, ce qui aurait pris une éternité. Je l'ai donc arrêté et j'ai décidé d'essayer de le gzipper à la volée pour le rendre beaucoup plus petit afin que la quantité à transférer soit moindre. J'ai donc fait
dd if=/local/path | gzip > /remote/path/in/local/network/backup.img.gz
Mais maintenant, j'obtiens une vitesse de transfert réseau de l'ordre de 1 Mo/s, soit un facteur de 10 à 20 plus rapide. Après avoir remarqué cela, je l'ai testé sur plusieurs chemins et fichiers, et c'était toujours pareil.
Pourquoi la tuyauterie dd
par le biais de gzip
augmente également les taux de transfert par un facteur important au lieu de réduire uniquement la longueur partielle du flux par un facteur important ? Je m'attendais plutôt à une légère baisse des taux de transfert, en raison de la consommation plus élevée de l'unité centrale lors de la compression, mais maintenant j'obtiens un double plus. Je ne suis pas mécontent, mais je me pose des questions ;)