Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Current »

Описание

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

  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

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


200 - OK

500 - Internal error

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

/mixer/test/stop

{
}

200 - OK

404 - Mixer not found

500 - Internal error

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

/mixer/test/get_start_example


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

200 - OK

500 - Internal error

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

Параметры

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

Описание

Пример

feedingSteams

Список опубликованных на сервере потоков, которые будут участвовать в тестировании
["s1","s2","s3","s4"]
mixerCountКоличество создаваемых микшеров2
streamsInMixerКоличество потоков, направляемых в каждый микшер2
intervalInSecondsИнтервал в секундах, после которого микшеры уничтожаются и создаются снова60

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

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

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

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

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

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

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

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

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

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

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

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

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

  • Файл /usr/local/FlashphonerWebCallServer/logs/server_logs/flashphoner.log, собранный во время тестирования
  • Каталог /usr/local/FlashphonerWebCallServer/conf
  • Результат выполнения команды ifconfig на Вашем сервере
  • No labels