Нагрузочное тестирование Janus
Сколько зрителей выдерживает один сервер Krona.Chat: результаты нагрузочного тестирования видеосервера Janus.
Тест проведён 10.10.2026
Как устроены схемы
Смешанная: модель → смешанный сервер → зрители этой модели. Все зрители одной трансляции должны поместиться на один сервер.
Раздельная (каскадирование): модель → сервер для моделей → один или несколько серверов для зрителей → зрители. Пересылку видео между серверами (каскадирование) выполняет сам сервер для моделей, отдельный сервер для этого не нужен. Если у трансляции много зрителей, их распределяют по нескольким серверам для зрителей.
Коротко о главном
- Один сервер уверенно показывает видео 330–360 зрителям одновременно — без подвисаний и потерь качества.
- Если вынести приём трансляций на отдельный сервер, сервер для зрителей обслуживает примерно на 10% больше зрителей, чем смешанный, а у одной трансляции может быть сколько угодно зрителей — их распределяют по нескольким серверам для зрителей.
- Приём трансляций почти не нагружает сервер. Основная нагрузка — доставка видео зрителям.
- Сервер использует сетевой канал почти полностью: без потерь — до 900 Мбит/с видео к зрителям при канале 1 Гбит/с. Если превысить предел, качество падает сразу у всех, поэтому серверы загружают с запасом — так и считает калькулятор внизу страницы.
Как проводилось тестирование
Тестировались видеосерверы Krona.Chat. Модели и зрители — программные клиенты, которые ведут себя как браузер: заходят в комнату, отправляют и принимают видео.
Запускаем трансляции
Модели начинают трансляцию видео 1080p, около 2,5 Мбит/с — как у реальной веб-камеры.
Добавляем зрителей
Каждые 2 секунды подключается новый зритель — нагрузка растёт плавно.
Следим за качеством
У каждого зрителя считаем, сколько видео теряется по дороге. Пока потери меньше 1%, картинка плавная.
Находим предел
Тест останавливается, когда качество начинает падать. Максимум зрителей без потерь — это ёмкость сервера.
Схемы проверялись отдельными тестами. На графиках каждая линия — свой тест, линии не складываются.
Результаты
Сколько видео сервер отдаёт зрителям
Чем больше зрителей, тем больше видео отправляет сервер. Пока линия растёт ровно, все зрители получают видео полностью. Когда линия ломается вниз — сервер перегружен и не успевает доставить видео всем.
Показать таблицу
Мбит/с — сколько видео сервер отправляет всем зрителям за секунду. Зелёная рамка — максимум зрителей без потерь качества, красный фон — перегрузка.
Качество видео у зрителей
Доля видео, которая не дошла до зрителя. До 1% зритель этого не замечает, больше — картинка подвисает и рассыпается. Резкий рост потерь и есть предел сервера.
Показать таблицу
Потери видео у зрителей, %. Зелёная рамка — максимум зрителей без потерь качества, красный фон — перегрузка.
Загрузка процессора сервера
Процессор не доходит до 100%: сервер раньше упирается в доставку видео. После предела загрузка даже снижается — сервер теряет видео вместо того, чтобы его отправлять.
Показать таблицу
Загрузка процессора, %. Зелёная рамка — максимум зрителей без потерь качества, красный фон — перегрузка.
Какую схему выбрать
Все цифры — для видео 1080p около 2,5 Мбит/с, без потерь качества.
Смешанный сервер
до 330 зрителейМодели и их зрители на одном сервере. В тесте у каждой трансляции было около 33 зрителей.
Подходит, когда у трансляции до нескольких сотен зрителей. Если трансляций много, а зрителей у каждой мало (около 10), сервер держит немного меньше — около 280.
Раздельная схема
до 360 зрителейСерверы для моделей принимают трансляции, серверы для зрителей показывают их. Сервер для зрителей держит примерно на 10% больше зрителей, чем смешанный.
Подходит для больших аудиторий: зрителей одной трансляции распределяют по нескольким серверам для зрителей — ограничения «вся аудитория на одном сервере» нет.
Сервер для моделей
~220 трансляцийЧасть раздельной схемы: принимает видео от моделей и пересылает его на серверы для зрителей. Это лёгкая работа: 120 трансляций загрузили сервер всего на 14%.
~220 — расчёт по замерам: каждая трансляция для такого сервера — одно входящее видео и одна пересылка дальше.
Сравнение с калькулятором на сайте
Калькулятор серверов на сайте закладывает на сервер около 700 Мбит/с видео к зрителям. Тест показал, что сервер с каналом 1 Гбит/с без потерь отдаёт до 900 Мбит/с, так что калькулятор на сайте считает с хорошим запасом.
Для видео 2,5 Мбит/с это 330–360 зрителей на сервер. Для 1080p с битрейтом 3 Мбит/с — по расчёту около 290 зрителей.
Калькулятор: сколько серверов нужно
Использует коэффициенты, полученные в тестах. Укажите свою нагрузку и цену сервера у вашего провайдера.
Результаты получены на тестовом сервере и могут отличаться в зависимости от провайдера, сети и настроек трансляций.
Отчёт сгенерирован orchestration/capacity_report.py из данных прогонов (Locust + Prometheus + RTP-статистика зрителей).