Я хотел сделать резервную копию пути от компьютера в моей сети к другому компьютеру в той же сети по линии 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
также увеличивает скорость передачи в значительной степени, а не только уменьшает длину байта потока в значительной степени? Вместо этого я ожидал даже небольшого снижения скорости передачи из-за более высокого потребления ЦП при сжатии, но теперь я получаю двойной плюс. Не то чтобы я не был счастлив, но мне просто интересно. ;)
dd
вывод со скоростью 1 МБ / с ... прямо в gzip
канал ожидания . Это имеет очень мало общего с размером блока.