Почему передача «dd» через gzip намного быстрее, чем прямая копия?

Я хотел сделать резервную копию пути с компьютера в моей сети на другой компьютер в том же сеть по линии 100 Мбит / с. Для этого я сделал

dd if=/local/path of=/remote/path/in/local/network/backup.img

, который дал мне очень низкую скорость передачи данных по сети от 50 до 100 кБ / с, что заняло бы вечность. Поэтому я остановил его и решил попробовать сжать его на лету, чтобы сделать его намного меньше, чтобы сумма для передачи была меньше. Так я и сделал

dd if=/local/path | gzip > /remote/path/in/local/network/backup.img.gz

Но теперь я получаю что-то вроде скорости передачи данных по сети 1 МБ / с, что в 10-20 раз быстрее. Заметив это, я протестировал это на нескольких путях и файлах, и это всегда было одинаково.

Почему конвейер с dd через gzip также увеличивает скорость передачи в большой раз вместо того, чтобы просто уменьшить длину потока в байтах в большой раз? Я ожидал даже небольшого уменьшения скорости передачи вместо этого из-за более высокого потребления ЦП при сжатии, но теперь я получаю двойной плюс. Не то чтобы я недоволен, но мне просто интересно. ;)

80
задан 31.05.2014, 16:55

0 ответов

Теги

Похожие вопросы