Versions Compared

Key

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

Table of Contents

Описание

Если сценарий использования сервера предусматривает микширование потоков, возникает необходимость нагрузочного тестирования микшера перед вводом сервера в эксплуатацию. Тестирование проводится следующим образом:

  1. На сервере публикуется необходимое количество потоков (минимум по одному потоку на микшер)
  2. Создается указанное количество аудиомикшеров, на вход которым подается заданное количество потоков. Один поток может быть подан на вход только одного микшера.
  3. Микшеры работают в течение заданного времени, после чего уничтожаются и создаются заново, до окончания тестирования.

В процессе тестирования можно наблюдать за поведением сервера при помощи средств мониторинга.

Для управления тестированием предназначены специальные REST API запросы.

REST-вызовы

REST-запрос должен быть HTTP/HTTPS POST запросом в таком виде:

  • HTTP: http://streaming.flashphoner.com:8081/rest-api/mixer/test/start
  • HTTPS: https://streaming.flashphoner.com:8444/rest-api/mixer/test/start

Здесь:

  • streaming.flashphoner.com - адрес WCS-сервера
  • 8081 - стандартный REST / HTTP порт WCS-сервера
  • 8444 - стандартный HTTPS порт
  • rest-api - обязательный префикс
  • mixer/test/start - используемый REST-вызов

REST-вызовы и статусы ответа

...

REST-метод

...

Пример тела REST-запроса

...

Пример ответа

...

Статусы ответа

...

Описание

...

/mixer/test/start

...

Code Block
languagejs
themeRDark
{
    "feedingStreams": [
        "s1",
        "s2",
        "s3",
        "s4"
    ],
    "mixerCount": 2,
    "streamsInMixer": 2,
    "intervalInSeconds": 60
}

...

200 - OK

500 - Internal error

...

Запускает тест, создавая два микшера, в каждый из которых вводятся два потока. Через 60 секунд микшеры уничтожаются

...

/mixer/test/stop

...

Code Block
languagejs
themeRDark
{
}

...

200 - OK

404 - Mixer not found

500 - Internal error

...

Останавливает тест

...

/mixer/test/get_start_example

...

Code Block
languagejs
themeRDark
{
    "feedingStreams": [
        "stream1",
        "stream2",
        "stream3"
    ],
    "mixerCount": 3,
    "streamsInMixer": 1,
    "intervalInSeconds": 60
}

...

200 - OK

500 - Internal error

...

Возвращает пример JSON-объекта, передаваемого на вход методу /mixer/test/start

Параметры

...

Имя параметра

...

Описание

...

Пример

...

feedingSteams

...

["s1","s2","s3","s4"]

...

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

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

  • WCS сервер
  • браузер Chrome и REST-клиент для отправки запросов
  • веб-приложение Two Way Streaming для публикации потоков

2. Опубликуйте потоки с именами s1, s2, s3, s4

Image Removed

3. Откройте REST-клиент. Отправьте запрос /mixer/test/start, указав в параметрах:

  • список опубликованных потоков: s1, s2, s3, s4
  • количество микшеров: 2
  • количество потоков на микшер: 2
  • интервал работы микшера: 120 секунд

Image Removed

4. Убедитесь, что микшеры созданы, отправив запрос /mixer/find_all

Image Removed

Должно быть найдено два микшера mixer0 и mixer1

Image Removed

5. Во время теста можно наблюдать за потреблением ресурсов сервера при помощи Java Mission Control, страниц информации о нагрузке и ресурсах и информации об ошибках, а также серверных логов.

6. Остановите тест, отправив запрос /mixer/test/stop

Image Removed

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

1. Если во время тестирования была выявлена большая загрузка CPU, следуйте рекомендациям по тонкой настройке сервера.

2. Если во время тестирования была выявлена утечка ресурсов, направьте описание теста и следующие файлы на адрес support@flashphoner.com:

...

Include Page
WCS5RU:Нагрузочное тестирование микшера
WCS5RU:Нагрузочное тестирование микшера