Нагрузочное тестирование WCS5

Ilya

Member
День добрый!
Сейчас пытался собрать схему нагрузочного тестирования, которая описана в http://flashphoner.com/docs/wcs5/wcs_docs/html/ru/wcs-admin-guide/. Но что-то ничего не выходит.

В логе WCS вот что
11:37:52,126 INFO LoadToolApp - http-nio-9091-exec-6 Connect
11:37:52,126 WARN AccountManager - http-nio-9091-exec-6 No accounts left with type: CALLEE
В браузере
{"message":"connection","data":[{"appKey":"loadtool","sipLogin":"CALLEE","sipRegisterRequired":"true","sipContactParams":"0","mediaProviders":["WebRTC"],"urlServer":"wss://xxxxx:443","width":"320","height":"240","clientVersion":"973.1894-698f2226327441982ef86ebceebb96e9d81d8e36","clientOSVersion":"5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.87 Safari/537.36 OPR/41.0.2353.56","clientBrowserVersion":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.87 Safari/537.36 OPR/41.0.2353.56"}]}
{"message":"fail","data":[{"status":"FAILED","info":"Internal Server Error","apiMethod":"ConnectionStatusEvent"}]}

Скажите, как провести нагрузочное тестирование?
 

Max

Administrator
Staff member
Сделал тоже самое. По шагам, как здесь:
http://flashphoner.com/docs/wcs5/wc.../setup_and_testing-load_testing-sip_calls.htm

1. Добавил LoadToolApp
2. Заполнил конфиг accounts.xml и перезагрузил WCS.
3. Открыл две страницы
https://192.168.1.59:8888//client/examples/tools/lt/Callee.html
https://192.168.1.59:8888//client/examples/tools/lt/Caller.html
Пошли звонки.

Проверьте что в файле account.xml используются аттрибуты type="CALLER" и type="CALLEE", обозначающие типы аккаунтов, участвующих в тесте.

Версия сервера 5.0.1979
 

Ilya

Member
Я нашел свою ошибку - я внес данные в файл в qa/accounts.xml. Поправил. Регистрации на sip сервере поднялись от двух акаунтов, прописанных в accounts.xml
Зашел на странички callee и caller. Но звонок не пошел. В логе WCS вот что
21:01:04,303 WARN AccountManager - http-nio-9091-exec-1 No accounts left with type: CALLEE
........
21:01:04,322 INFO agerRemoteRmiService - RMI TCP Connection(4)-xxxxxxxxxx SEND REST OBJECT ==>
URL:http://localhost:9091/LoadToolApp/ErrorStatusEvent
OBJECT:
{
"nodeId" : "s0ctUtyEaESECl4LSyJSzrHcLLCaZn8K@xxxxxxxxxx",
"appKey" : "loadtool",
"sessionId" : "/192.168.15.228:65437/xxxxxxxxx:443",
"status" : "CALLEE_NAME_IS_NULL",
"info" : "CALLEE_NAME_IS_NULL"
}


вот как описаны логины в accounts.xml
<account login="080072" password="blabla" authenticationName="080072" type="CALLER"/>
<account login="080073" password="blabla" authenticationName="080072" type="CALLEE"/>

Версия 5.0.1985
 

Max

Administrator
Staff member
Скорее всего потому что authenticationName один и тот же. Он может использоваться для идентификации аккаунтов.
Попробуйте разные.
 

Ilya

Member
День добрый!
Сегодня попробовал сгенерить 1000 регистраций на wcs5
Регистрации проходят нормально.
В этот же самый момент выполняю звонок. А вот звонок уже не идёт. Вываливается ошибка
internal_error.jpg
В этот момент вот данные сервера
-----Connection Stats-----
connections=849
connections_rtmfp=0
connections_websocket=849
-----Port Stats-----
ports_sip=849
ports_media=1698
ports_rtsp=0
-----Stream Stats-----
streams_webrtc_in=0
streams_webrtc_out=0
streams_rtmfp_in=0
streams_rtmfp_out=0
streams_rtmp_in=0
streams_rtmp_out=0
streams_viewers=
streams_rtsp_in=0
streams_rtsp_out=0
streams_websocket_out=0
streams_rtmp_client_out=0
-----Core Stats-----
core_threads=6842
core_heap_memory_used=625370
core_rss_memory=2082932
core_open_file_descriptors=0
core_cpu_usage=15.4
core_gc=617.297: [GC (Allocation Failure) 1447590K->113658K(1529344K), 0.0146826 secs]
core_gc_manager=649.522: [GC (Allocation Failure) 148351K->98191K(227328K), 0.0086598 secs]
core_java_threads=6871
core_java_committedMemory=15403753472
core_java_freePhysicalMemorySize=3294162944
core_java_arch=amd64
core_java_availableProcessors=4
core_java_freeSwapSpaceSize=3196215296
core_java_maxFileDescriptorCount=4096
core_java_open_file_descriptors=3558
core_java_cpu_usage=5.20
core_java_totalPhysicalMemorySize=8203059200
core_java_totalSwapSpaceSize=3221221376
core_java_uptime=627559
-----Call Stats-----
sip_calls=0
sip_calls_established=0
sip_calls_in=0
sip_calls_out=0
sip_calls_per_second=0.00
-----Sip Stats-----
sip_registered=852
-----Recording Stats-----
recording_sessions=0
-----System Stats-----
system_java_cpu_usage=15.26
system_java_load_average=0.54
system_uptime= 48 days, 11:32
system_memory_total=8010800
system_memory_free=3215764
system_cpu_usage=0.1

А через минуту я получил в watchdog архив с дампом. сервер видимо покрешился.
 

Ilya

Member
И еще вопрос - почему сразу после запуска сервера не удается позвонить? Вываливается ошибка
16:19:15,198 INFO agerRemoteRmiService - RMI TCP Connection(5)-xxxxxxxxxx SEND REST OBJECT ==>
URL:http://localhost:9091/EchoApp/ErrorStatusEvent
OBJECT:
{
"nodeId" : "s0ctUtyEaESECl4LSyJSzrHcLLCaZn8K@xxxxxx",
"appKey" : "defaultApp",
"sessionId" : "/192.168.17.98:57829/xxxxxxxxxx:443",
"status" : "INTERNAL_SIP_ERROR",
"info" : "INTERNAL_SIP_ERROR"
}
Хотя регистрация есть. Получается позвонить где-то через 2 - 3 минуты после запуска
16:18:34,787 INFO Manager - main Started Manager in 22.531 seconds (JVM running for 23.198) - время старта
16:20:55,360 INFO agerRemoteRmiService - RMI TCP Connection(7)-xxxxxxxxx SEND REST OBJECT - время удачного звонка
 

Max

Administrator
Staff member
Если регистрируете 1000 аккаунтов и пытаетесь их прозвонить, то нужно пулы портов расширить
Например так. 5к портов на SIP порты и 10к портов на RTP / WebRTC.
Code:
port_from=30000
port_to=39999
media_port_from=40000
media_port_to=49999
При этом желательно мониторить что происходит с памятью и процессором
Мониторинг
Visual VM

Heap памяти можно добавить в setenv.sh
Например:
Code:
-Xmx4096M -Xms2048M
Если случился краш, то должен быть лог logs/errorPID.log
PID - ID процесса

Code:
 еще вопрос - почему сразу после запуска сервера не удается позвонить?
Должно быть видно в логе logs/server_logs/flashphoner.log
 

Ilya

Member
Настройки портов сейчас у меня выглядят так
Code:
port_from=20000
port_to=41000
media_port_from=20000
media_port_to=41000
Памяти я добавил
Code:
-Xmx8G -Xms2G
Сейчас подключился через Visual VM. Буду наблюдать такое кол-во регистраций.

Если случился краш, то должен быть лог logs/errorPID.log
Как такового крэша не было с созданием errorPID.log. Но WCS перестал обрабатывать подключения.

По поводу невозможности позвонить после запуска WCS - в логе кроме INTERNAL_SIP_ERROR ничего не нашел.
У меня есть целиком папка logs в момент тестирования. Могу прислать.

1 .Скажите, а есть у вас какие-нибудь наработки по рекомендуемым параметрам на 2000-3000 тыс одновременных регистраций по webrtc с авторизацией на sip сервере?
2. какой RPS WCS5 может через себя пропустить без регрессии качества связи?
 

Max

Administrator
Staff member
Code:
1 .Скажите, а есть у вас какие-нибудь наработки по рекомендуемым параметрам на 2000-3000 тыс одновременных регистраций по webrtc с авторизацией на sip сервере?
2. какой RPS WCS5 может через себя пропустить без регрессии качества связи?
Свежих данных нет. Нужно тестировать, подбирать нагрузку.
Обычно тесты производительности делаем под конкретные заказы на выделенном железе.
 
Top