Versions Compared

Key

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

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

Описание

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

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

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

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

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

Image Added

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

Image Added

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

Image Added

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

Image Added

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

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

Image Added 

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

Image Added

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

Image Added

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

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

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

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

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

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

  • test1 - Origin
  • test2 - Edge

На Edge сервере добавьте настройку

Code Block
themeRDark
wcs_activity_timer_timeout=86400000

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

Image Added

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

Image Added

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

Image Added

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

Image Added

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

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

Image Added

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

Захват потоков по RTMP

В сборке 5.2.767 добавлена возможность захвата потоков при нагрузочном тестировании по RTMP. Чтобы такой тест работал, необходимо в настройках тестирующего сервера указать параметр

Code Block
themeRDark
rtmp_pull_allow_to_reuse_uri=true

В конфигурации теста необходимо выбрать "Proto pull: RTMP"

Image Added

Сам тест работает так же, как WebRTC-тест

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

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

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.