Как настроить высоконагруженный rsync?

Имеется схема с сервером rsync, на нём соответственно лежат файлы. И множество клиентов - до 50к. Эти клиенты соответственно синхронизируются с сервером.
Что имеем по факту? systemctl из коробки даёт лимит 1024 max open files для сервиса, что даёт внутри rsync потолок около 500 клиентов. Увеличиваем лимит сервиса, ставим в настройках самого рсинка max connections=0 (безлим). В результате - клиенты коннектятся где-то до 5000+, затем начинаются дропы по TCP: "Connection reset by peer (104)" что вроде как говорит о TCP RST. Пока набирается пул коннектов, несколько устройств успевают обновиться, потом они толкутся переподключаются и не синхронизируются. Переваливаешь сервер - снова успевает несколько устройств синхронизироваться, пока не набивается количество коннектов. Памяти и ЦПУ достаточно.
То есть если устройства обновлять мелкими партиями - всё ок. Как только толпа - коллапс, и он сам не разгребается.
Итого вопрос - как обустроить это хозяйство?
  • Вопрос задан
  • 315 просмотров
Пригласить эксперта
Ответы на вопрос 3
dimonchik2013
@dimonchik2013
non progredi est regredi
Памяти и ЦПУ достаточно.

тут забыли дописать
и NVME диска
ну или хотя бы
disk i/o

допишите, и тогда можно подумать над решением
Ответ написан
@pfg21
ex-турист
спробовать перейти от инструмента rsync к демону syncthing (или коммерческому resilio sync).

rsync разрабатывался как локальный инструмент подтвержденного копирования со всеми атрибутами из дирА в дирБ, 50 килоклиентов явно не его рабочая стезя.

а вот демон, в том числе разработанный с учетом опыта рсинка, должен осилить такую сеть.
битторент (исходник для ресилио и синхфинга) и большее число клиентов связывает без проблем. но у него раздачи в р/о, что гораздо проще.

минус в синхфинге - сложная система аутенфикации клиентов меж собой, 50 килов меж собой связывать придется "вручную" - гемор.
ресилио вообще не аутенфицирует клиентов. у кого есть ключ раздачи - тот и допущен к раздаче.

остается только пробовать.
Ответ написан
@Drno
А не думали что в диск может упирается?
По идее для такого кол клиентов уже надо что то адекватное разворачивать, вместо rsync...
Точнее адекватное на сервере, NFS там или webdav

Возможно вместо rsync сможет помочь rclone, по крайне мере у меня клиенты в вебдав с помощью rclone ходят, вроде всё ок.. порядка 1000шт, правда не всегда одновременно
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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