Не хватает ширины канала для трансляции?

Подняли свой сервер Nginx для HLS трансляций, сделал по этой инструкции, транслируем с OBS.
Все работает замечательно, сервер находится в Hetzner Cloud.
При тестирование стрим работает хорошо, но когда мы запускаем его для корпоративных нужд, на него может зайти до 5 тыс. пользователей, она начинает зависать, тормозить.

Начали изучать проблему, сервер достаточно мощный использовали 8core, 32gb ram, 256gb ssd, нагрузки практически не было в пике, когда трансляция зависала, нагрузка была на 1 ядро и то 30-50%

Проблема скорее всего в ширине канала, я не смог найти какая у сервера Hetzner скорость карты, скорее всего 1000мб.
Перешли на инстансы AWS, там та же история и к тому же там трафик платный и за 1 терабайт мы неплохо так им заплатили ($124), инстанс находился в Орегоне

Далее были пробы использовать не очень привлекательный для компании способы, использовать CDN для доставки контента, это дорого, тот же CloudFront выходит + стоимостью трафика очень дорого, или альтернативные CDN для видео доставки контента были дорогие

Сейчас есть мысли взять сервер с большой пропускной способностью, 100 гигабит, возможно это тоже не решение

Подскажите пожалуйста, каким способом можно решить проблему?
Каким поднять свой CDN для HLS трансляций :)

Кстати что не пробовал, сможет ли CloudFlare справится с задачей? чтоб он на своей стороне кэшировал все и не обращался за каждым фрагментом трансляции к серверу напрямую?
  • Вопрос задан
  • 457 просмотров
Решения вопроса 2
HLS трансляция - это же динамический плейлист и статичные видео чанки. Чанки вполне можно отдавать через cdn.
Если геоцдн не нужен, а нужна только ширина канала - то можите просто поднять еще несколько новых проксирующих серверов на hetzner cloud.

В идеале - вам бы kubernetus+prometheus(ну или любые их аналоги) и в них все эти проксирующие зеркала поднимать по факту нагрузки на канал. Зеркала же stateless.
Ответ написан
Jump
@Jump
Системный администратор со стажем.
Перешли на инстансы AWS, там та же история и к тому же там трафик платный и за 1 терабайт мы неплохо так им заплатили ($124), инстанс находился в Орегоне
Если все юзеры у вас сидят в Орегоне, все должно прекрасно работать.
Другое дело когда пользователи сидят где-нибудь в России, Австралии, или Китае - там понятное дело что до Орегона будет узкий и нестабильный канал.

Каким поднять свой CDN для HLS трансляций
Да просто поставить несколько не слишком мощных серверов в местах наибольшего скопления пользователей контента, и балансер.
https://habr.com/ru/company/flashphoner/blog/340344/
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@rPman
Как представлю этот кошмар, обеспечение стриминга 5к пользователей в одно и то же время, сразу кошельку становится грустно грустно.

Ладно если бы речь шла о 2010г. и ранее, тогда действительно был единственный вариант заливать сетевые каналы баблом, но теперь у нас есть https://webtorrent.io на базе webrtc и p2p, попробуйте, конечно, возможно технология все еще сыровата, но у вас корпоративные клиенты, где сети не такие сломанные как мобильные (все за nat и/или p2p трафик так или иначе ограничивается) и главное, потратьте эти деньги на допиливание ее, в результате выиграют все а не только амазон (поддержка таких монополистов деньгой фактически преступление для человечества).
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы