Сегодня я использовал rsync по медленному интернет-соединению для передачи видеофайла - несжатого avi, длительностью 60 секунд, размером 360 МБ. В основном это содержало 1500 кадров того же самого изображения, следовательно это было очень сжимаемо.
Максимальная скорость загрузки при подключении к Интернету составляет 130 КБ / с. Я запустил rsync следующим образом:
rsync -avhz --progress --partial myfile.avi remote:/path/
Скорость передачи варьировалась от 400 КБ / с до 1,5 МБ / с. Я случайно Ctrl+C
запустил rsync после передачи файла на полпути. Но не беспокойтесь, я использовал переключатель --partial
, поэтому я просто перезапустил rsync с теми же параметрами, что и раньше. Только теперь скорость передачи была 80 МБ / с!
Я пробовал это снова, снова и снова. Даже без переключателя -z
результат был таким же. При первом запуске скорость передачи составляла 1,5 МБ / с, но после некоторого прерывания rsync и его перезапуска остальная часть файла была передана почти мгновенно. md5sum
совпадают на обоих концах.
Мой вопрос: может ли кто-нибудь объяснить мне это поведение? Я что-то упускаю здесь очевидное? Я ожидал бы, что файл будет передан намного быстрее уже с переключателем -z
при первом запуске, но я не ожидаю, что он так резко ускорится, даже не используя -z
после возобновления передачи.
man rsync
Из описания:
«Он известен своим алгоритмом дельта-передачи, который уменьшает объем данных, передаваемых по сети, отправляя только различия между источником файлы и существующие файлы в месте назначения. "
Таким образом, скорость, которую вы получили, более или менее указала, насколько быстро rsync
может подтвердить, что файл уже был передан, или подтвердить и передать измененные / отсутствующие части.