Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

Описание

Возможность захвата потока с другого WCS-сервера по WebRTC может быть полезна для нагрузочного тестирования. Тест проводится по следующему сценарию:

  1. На сервере 1 публикуется поток
  2. Сервер 2 создает заданное количество соединений (например, 100) с сервером 1 по Websocket, как браузерный клиент
  3. Сервер 2 захватывает поток в заданном количестве экземпляров, как зритель, создавая нагрузку на сервер 1.

Тестирование

1. Для теста используем:

  • два WCS-сервера: demo.flashphoner.com и wcs5-us.flashphoner.com;
  • веб-приложение Two Way Streaming для публикации потока;
  • веб-приложение Console для проведения теста;
  • браузер Chrome и расширение Allow-Control-Allow-Origin для работы веб-приложения Console.

2. Откройте приложение Console через HTTP (не через HTTPS!) http://demo.flashphoner.com:9091/client2/examples/demo/streaming/console/console.html

Image Removed

3. Установите расширение ACAO, разрешите Cross-Origin-Resource-Sharing

Image Removed

4. Введите имя сервера wcs5-us.flashphoner.com и нажмите 'Add node'. Данный сервер будет выполнять роль подписчика, захватывая потоки. Затем аналогично добавьте сервер demo.flashphoner.com, который будет выполнять роль тестируемого источника потоков.

Image Removed

5. Откройте приложение Two Way Streaming https://demo.flashphoner.com/client2/examples/demo/streaming/two_way_streaming/two_way_streaming.html, опубликуйте поток с веб-камеры

Image Removed

6. В приложении Console выберите сервер wcs5-eu.flashphoner.com, нажмите кнопку 'Pull streams', задайте параметры теста:

  • Choose node - выберите тестируемый сервер demo.flashphoner.com
  • Local stream name, Remote stream name - укажите имя опубликованного потока
  • Qty - укажите количество зрителей (например, 100)

Image Removed 

7. Нажмите 'Pull'. Начнется тест.

Image Removed

8. Выберите сервер demo.flashphoner.com. На странице отображается список медиасессий, в которых воспроизводится опубликованный поток. В правом верхнем углу отображается информация о текущей нагрузке тестируемого сервера.

Image Removed

Тестирование Edge сервера в CDN

Тестирование Edge сервера в CDN проводится по следующему сценарию:

  1. На Origin сервере публикуются потоки
  2. Тестирующий сервер создает заданное количество соединений (например, 100) с сервером Edge по Websocket, как браузерный клиент
  3. Тестирующий сервер захватывает потоки, доступные Edge серверу, в заданном количестве экземпляров, как зритель, создавая нагрузку на сервер Edge и на CDN в целом, в части передачи потока с Origin на Edge.

Краткое руководство по тестированию Edge сервера

1. Для теста используем:

  • два WCS-сервера для развертывания CDN: test1.flashphoner.com и test2.flashphoner.com;
  • WCS-сервер для проведения теста demo.flashphoner.com
  • веб-приложение Two Way Streaming для публикации потока;
  • веб-приложение Console для проведения теста;
  • браузер Chrome и расширение Allow-Control-Allow-Origin для работы веб-приложения Console.

2. Разверните CDN, назначив серверам роли:

  • test1 - Origin
  • test2 - Edge

3. Откройте приложение Console через HTTP (не через HTTPS!) http://demo.flashphoner.com:9091/client2/examples/demo/streaming/console/console.html

Image Removed

4. Разрешите Cross-Origin-Resource-Sharing

Image Removed

5. Введите имя Edge сервера test2.flashphoner.com и нажмите 'Add node'. Данный сервер будет тестироваться. Затем аналогично добавьте сервер demo.flashphoner.com, который будет выполнять роль подписчика, захватывая потоки.

Image Removed

6. Откройте приложение Two Way Streaming, опубликуйте поток с веб-камеры

Image Removed

7. В приложении Console выберите сервер demo.flashphoner.com, нажмите кнопку 'Stress play stream', задайте параметры теста:

  • Choose node - выберите тестируемый сервер test2.flashphoner.com
  • Choose test mode - Random
  • CDN - установите переключатель
  • Max streams - укажите количество зрителей (например, 100)

Image Removed

7. Нажмите 'Start'. Начнется тест.

Рекомендации по настройке

Если тест не был пройден успешно, рекомендуется на тестируемом сервере изменить следующие настройки:

1. В файле flashphoner.properties расширить диапазон UDP-портов и запретить быстрый старт декодера

Code Block
languagebash
themeRDark
media_port_from = 20000
media_port_to = 39999
streaming_video_decoder_fast_start=false

2. В файле wcs-core.properties увеличить предельный размер памяти для кучи. Рекомендуется задавать этот размер в половину физической памяти, например, 16 Гб при объеме физической памяти в 32 Гб. Убедитесь, что памяти на сервер достаточно для этого:

Code Block
languagebash
themeRDark
-Xmx16g -Xms16g

Известные проблемы

1. По умолчанию, захватывается не более 1000 потоков

Симптомы: при указании количества зрителей более 1000, захватывается 998 потоков

Решение: по умолчанию, максимальное количество портов агентов ограничено 999:

Code Block
languagebash
themeRDark
wcs_agent_port_from=34001
wcs_agent_port_to=35000

Для расширения данного ограничения, необходимо увеличить значение

Code Block
languagebash
themeRDark
wcs_agent_port_to=35000

в файле flashphoner.properties.

Include Page
WCS5RU:Нагрузочное тестирование с использованием захвата потоков по WebRTC
WCS5RU:Нагрузочное тестирование с использованием захвата потоков по WebRTC