Если сценарий использования сервера предусматривает микширование потоков, возникает необходимость нагрузочного тестирования микшера перед вводом сервера в эксплуатацию. Тестирование проводится следующим образом:
В процессе тестирования можно наблюдать за поведением сервера при помощи средств мониторинга.
Для управления тестированием предназначены специальные REST API запросы.
REST-запрос должен быть HTTP/HTTPS POST запросом в таком виде:
Здесь:
REST-метод | Пример тела REST-запроса | Пример ответа | Статусы ответа | Описание | |
---|---|---|---|---|---|
/mixer/test/start |
| 200 - OK 500 - Internal error | Запускает тест, создавая два микшера, в каждый из которых вводятся два потока. Через 60 секунд микшеры уничтожаются | ||
/mixer/test/stop |
| 200 - OK 404 - Mixer not found 500 - Internal error | Останавливает тест | ||
/mixer/test/get_start_example |
| 200 - OK 500 - Internal error | Возвращает пример JSON-объекта, передаваемого на вход методу /mixer/test/start |
Имя параметра | Описание | Пример |
---|---|---|
feedingSteams | Список опубликованных на сервере потоков, которые будут участвовать в тестировании | ["s1","s2","s3","s4"] |
mixerCount | Количество создаваемых микшеров | 2 |
streamsInMixer | Количество потоков, направляемых в каждый микшер | 2 |
intervalInSeconds | Интервал в секундах, после которого микшеры уничтожаются и создаются снова | 60 |
Для тестирования производительности микшера необходимо отключить асинхронное завершение медиасессий (которое работает по умолчанию)
handler_async_disconnect=false |
и перезапустить WCS.
По окончании тестирования данную настройку необходимо убрать.
1. Для теста используем:
2. Опубликуйте потоки с именами s1, s2, s3, s4
3. Откройте REST-клиент. Отправьте запрос /mixer/test/start, указав в параметрах:
4. Убедитесь, что микшеры созданы, отправив запрос /mixer/find_all
Должно быть найдено два микшера mixer0 и mixer1
5. Во время теста можно наблюдать за потреблением ресурсов сервера при помощи Java Mission Control, страниц информации о нагрузке и ресурсах и информации об ошибках, а также серверных логов.
6. Остановите тест, отправив запрос /mixer/test/stop
1. Если во время тестирования была выявлена большая загрузка CPU, следуйте рекомендациям по тонкой настройке сервера.
2. Если во время тестирования была выявлена утечка ресурсов, направьте описание теста и следующие файлы на адрес support@flashphoner.com: