Подскажите, rsync доступ к репозиториям даёт какой-то ощутимый прирост производительности на клиентах, по сравнению с FTP?
Скорее всего нет. Поскольку даже если кеш apt не очищать, при обновлении системы, в кеш apt скачиваются другие новые *.rpm файлы с другими именами.
Огромную разницу по трафику rsync даст при синхронизации локального зеркала и обновлении инсталляционного образа до текущего в свежей версии. Разница по трафику по rsync, по сравнению c http, может быть в гигабайтах.
Ключевая особенность rsync, - man rsync:
-
Благодаря этому протоколу rsync передает только различия между двумя наборами файлов через сетевое соединение, используя эффективный алгоритм поиска контрольных сумм (cheksum-search algorithm), описанный в сопровождающей этот пакет документации.Как частный случай:
Например при обновлении по rsync имеющегося на винчестере инсталляционного образа alt-workstation-9.1-x86_64.iso до текущего alt-workstation-9.2-x86_64.iso, объём трафика будет точно не 5 гигабайт. Что может быть критично для пользователя с узким каналом.
Обновление образа до свежего по rsyncНапример имеем образ объёмом в 1356300288 байт скачанный за 9 минут 48 секунд при анлиме в 25 мегабит:
http://nightly.altlinux.org/p10/release/(обратите вниманние на разницу в форматах линка: rsync использует модуль nightly (после org и слэша))
$ rsync --progress rsync://nightly.altlinux.org/nightly/p10/release/alt-p10-mate-20210805-x86_64.iso ./
Welcome to ALT Linux Team public rsync archive!
alt-p10-mate-20210805-x86_64.iso
1,356,300,288 100% 2.20MB/s 0:09:48 (xfr#1, to-chk=0/1)
sent 43 bytes received 1,356,631,519 bytes 2,297,428.56 bytes/sec
total size is 1,356,300,288 speedup is 1.00
$ du -b ./alt-p10-mate-20210805-x86_64.iso
1356300288 ./alt-p10-mate-20210805-x86_64.iso
и его нужно обновить до свежей бета объёмом в 1356300288 байт
$ wget http://nightly.altlinux.org/p10/beta/alt-p10-mate-20210812-x86_64.iso
...
Длина: 1356300288 (1,3G) [application/octet-stream]
Сохранение в: «alt-p10-mate-20210812-x86_64.iso»
alt-p10-mate-20210812-x86_64.iso 0%[ ] 11,79M 4,17MB/s ^C
$ rm -f ./alt-p10-mate-20210812-x86_64.iso
Зачем это ^^^^^^ нужно, - прерывание wget с удалением файла?
Чтобы получить размер образа в байтах, который возвратит wget. А альтовый сервер выводит размер образов в мегабайтах и гигабатах. Но не в байтах. Когда разница в объёме между образами заметна даже беглым взглядом.
Переименовываем текущий релиз в новую бета
$ mv ./alt-p10-mate-20210805-x86_64.iso ./alt-p10-mate-20210812-x86_64.iso
Синхронизируем:
http://nightly.altlinux.org/p10/beta/$ rsync --progress rsync://nightly.altlinux.org/nightly/p10/beta/alt-p10-mate-20210812-x86_64.iso ./alt-p10-mate-20210812-x86_64.iso
Welcome to ALT Linux Team public rsync archive!
alt-p10-mate-20210812-x86_64.iso
1,356,300,288 100% 15.40MB/s 0:01:23 (xfr#1, to-chk=0/1)
На 25-ти мегабитах, синхронизация прошла за 1 минуту 23 секунды на средней скорости 15.40MB/s, что просто нереально при используемом тарифе:
$ echo '15.40*8' | bc # мегабит
123.20
В пике, при синхронизации блоков, скорость синхронизации достигала 113MB/s, что просто за пределами фантастики. И при тарифе в 25 мегабит просто совершенно нереально:
$ echo '113*8' | bc # мегабит
904
И если бы эта скорость была бы реальным скачиванием, то тариф должен был быть не 25 мегабит, а 900 мегабит.
Но соль в том, что:
man rsync
- Благодаря этому протоколу rsync передает только различия между двумя наборами файлов через сетевое соединение, используя эффективный алгоритм поиска контрольных сумм (cheksum-search algorithm), описанный в сопровождающей этот пакет документации.Т.е. за 1 минуту 23 секунды, на синхронизации, максимум могло быть скачано, около 271974400 байт (~270 мегабайт)
25/8*1024^2*(60+23)
271974400.00000000000000000000
тариф_мегабит / бит_в_байте * перевод_мегабайт_в_байты * (секунд_в_минуте + секунды) = реально скачанных байт
Но в реальности их и того меньше, учитывая реальную пропускную способность сервер-клиент и что скорость скачивания не может быть всегда в максимуме по тарифу.
Выигрыш использования rsync для синхронизации образа до свежего, более чем очевиден. Это значительная экономия и времени и трафика.
И лет 12 назад, такой метод обновления образа был без вариантов. По тем временам, мой анлимовый adsl не слишком далеко ушел от диалапа. И скачивание образа в свежей версии в 2-4 гигабайта, было бы проблемой. Да и сейчас временами этот метод более чем актуален. Иногда на роутере, одновременно может одновременно сидеть до 5-6 клиетов. Да и внешний канал иногда временами сильно загружен. И здесь rsync даёт ошутимые преимущества. В общем и целом, такая же история и с синхронизацией локального зеркала.