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

Warmor

New Member
Добрый день. Как корректно протестировать нагрузку на сервер?
У нас имеется 2 сервера:
Сервер 1 - 48 ядер / 100 Ggb - оперативки
Сервер 2 - 32 ядра / 100 Ggb - оперативки

Тестировать пытаемся с помощью приложения "Console" через "Stress Play Stream". На сервере 1 публикуется поток, на сервере 2 генерируем зрителей.

У нас кол - во активных трансляций доходило максимум до 1433, держалось примерно 15-20 сек и начинало уменьшатся. При этом Сервер 1 нагружается не более 10%, а сервер 2 не более 40%. Настройки серверов идентичны.

Параметры теста через "Stress Play Stream" (не совсем понятно что обозначают и как работают поля "Start", "End" и "Rate".)
Remote - имя заранее опубликованного потока
Start - 1
End - 5000
Init - 5000
Rare - 500

При настройке сервера было сделано:

conf/flashphoner.properties
media_port_from = 11001
media_port_to = 28000
wcs_agent_port_from=34001
wcs_agent_port_to=40000

conf/wcs-core.properties
-Xms64g -Xmx64g

bin/setenv.sh
export WCS_FD_LIMIT=100000
 

Max

Administrator
Staff member
Добрый день.

Сначала попробуйте обычный pulling-тест, тот который не Stress. Пункт 6.
Убедитесь что нужное количество стримов между двумя серверами устанавливается корректно.

Load_test_pulling_setup.jpg


1433 стрима 480p могут вполне съедать 1 Гигабитную полосу. Между серверами 10 Гигабит?

Если pulling тест пройдет успешно, можно перейти к Stress тесту. Пункт 7.
Rate означает количество стримов, которое создается одновременно. Если вы выставляете 500, то сервер пытается одновременно утянуть 500 стримов, как если бы 500 зрителей одновременно нажали "Play". Это очень большая сигналинговая нагрузка. Попробуйте 1, 10, 20, чтобы смоделировать ситуацию, в которой к серверу подключается 1-20 пользователей за раз, для просмотра стрима. Таким образом, сервер набирает по 1-20 стримов и двигается к заданному пределу 5000 зрителей. Динамику можно отслеживать в статистике http://host:8081?action=stat

load_test_cdn-stress_play_test.png
 

Warmor

New Member
Судя по нашей статистике мы пока не упираемся в лимиты. Между серверами 1 Ггб, публикуем видео 320х240 с битрейтом 200.

1603203207806.png


Попробовали запустить pulling тест, малое кол-во стримов запускается нормально. Но при попытке запустить 2000 стримов, когда кол - во активных стримов доходило до 300, то по всей видимости первые стримы начинали отключатся (это где то можно настроить?)

Если запускать Stress тест с такими настройками
1603201818278.png


то Стримы запускаются по 10 штук и сразу отключаются. и максимум было одновременно около 30 стримов.

Для нас сейчас важно понять какое кол-во одновременных трансляций сможет выдержать сервер.
 

Max

Administrator
Staff member
Но при попытке запустить 2000 стримов, когда кол - во активных стримов доходило до 300, то по всей видимости первые стримы начинали отключатся (это где то можно настроить?)
Добавьте следующий параметр в настройки обоих серверов (тестируемого и тестирующего):
Code:
wcs_activity_timer_timeout=86400000
Тогда потоки в тестах не будут преждевременно завершаться.
 

Warmor

New Member
Спасибо,
При стресс тесте кол - во одновременных стримов выросло до ~2600. Но потоки всё ровно закрываются. В консоли при этом куча сообщений. Так и должно быть?
1603269432550.png

При пулл тесте удалось запустить 4905 стримов
Думаю это приемлемый результат для нас
 

Max

Administrator
Staff member
При стресс тесте кол - во одновременных стримов выросло до ~2600. Но потоки всё ровно закрываются.
Этот тест так работает, он предназначен для проверки сигналинга.
При пулл тесте удалось запустить 4905 стримов
Думаю это приемлемый результат для нас
Результаты обоих тестов выглядят хорошо.
В реальной жизни узким местом может стать канал до подписчика, когда Вы начнете увеличивать разрешение и битрейт потоков.
 
Top