freeswitchforum.com

Форум поддержки FreeSWITCH

FreeSWITCH is a registered trademark of Anthony Minessale. Official FreeSWITCH site.

Текущее время: 28 мар 2024 19:35

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: Тест нагрузки SIPp Abandoned
СообщениеДобавлено: 13 ноя 2019 15:11 

Зарегистрирован: 11 июл 2019 14:27
Сообщения: 5
Всем добрый день!
Я абсолютный новичок в свиче, прошу отнестись с пониманием :-)

Столкнулся с проблемой:
Есть FS, настроен на 2 домена compA.com/compB.com. Макс. сессий выставлено на 8000, cps на 90 (ставил от балды, планировал скорректировать после теста)
Хотел провести нагрузочное тестирование с помощью утилиты SIPp.
В SIPp создал сценарий с авторизацией.
[+] SIPp scenario
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE scenario SYSTEM "sipp.dtd">

<scenario name="UAC FS REG">
<send retrans="500">
<![CDATA[

INVITE sip:1000@compA.com SIP/2.0
Via: SIP/2.0/UDP [local_ip]:[local_port]
From: "1016" <sip:1016@compA.com>;tag=[call_number]
To: "1000" <sip:1000@compA.com>
Call-ID: [call_id]
CSeq: 1 INVITE
Contact: <sip:1016@[local_ip]:[local_port];ob>
Route: <sip:[remote_ip]:[remote_port];lr>
Max-Forwards: 70
Subject: Performance Test
Content-Type: application/sdp
Content-Length: [len]

v=0
o=user1 53655765 2353687637 IN IP[local_ip_type] [local_ip]
s=pjmedia
c=IN IP[media_ip_type] [media_ip]
t=0 0
m=audio [media_port] RTP/AVP 0
a=rtpmap:0 PCMA/8000

]]>
</send>

<recv response="407" auth="true">
</recv>

<send>
<![CDATA[

ACK sip:1000@compA.com SIP/2.0
Via: SIP/2.0/UDP [local_ip]:[local_port]
From: <sip:1016@compA.com>;tag=[call_number]
To: "1000" <sip:1000@compA.com>[peer_tag_param]
Call-ID: [call_id]
CSeq: 1 ACK
Contact: <sip:1016@[local_ip]:[local_port]>
Max-Forwards: 70
Content-Length: 0

]]>
</send>

<send>
<![CDATA[

INVITE sip:1000@compA.com; SIP/2.0
Via: SIP/2.0/UDP [local_ip]:[local_port]
From: <sip:1016@compA.com>;tag=[call_number]
To: "1000" <sip:1000@compA.com>
Call-ID: [call_id]
CSeq: 2 INVITE
Contact: <sip:1016@[local_ip]:[local_port]>
[authentication username="1016" password="password"]
Max-Forwards: 70
Subject: Performance Test
Content-Type: application/sdp
Content-Length: [len]

v=0
o=user1 53655765 2353687637 IN IP[local_ip_type] [local_ip]
s=pjmedia
c=IN IP[media_ip_type] [media_ip]
t=0 0
m=audio [media_port] RTP/AVP 0
a=rtpmap:0 PCMA/8000

]]>
</send>

<recv response="100" optional="true">
</recv>
<recv response="180" optional="true">
</recv>
<recv response="183" optional="true">
</recv>
<recv response="200" rtd="true" rrs="true">
</recv>

<send>
<![CDATA[

ACK sip:1000@[remote_ip]:[remote_port] SIP/2.0
Via: SIP/2.0/UDP [local_ip]:[local_port]
From: <sip:1016@compA.com>;tag=[call_number]
To: "1000" <sip:1000@compA.com>[peer_tag_param]
Call-ID: [call_id]
CSeq: 1 ACK
Contact: <sip:1016@[local_ip]:[local_port]>
Max-Forwards: 70
Subject: Performance Test
Content-Length: 0

]]>
</send>

<pause milliseconds="30000"/>



<send retrans="500">
<![CDATA[

BYE sip:1000@[remote_ip]:[remote_port] SIP/2.0
Via: SIP/2.0/UDP [local_ip]:[local_port]
From: <sip:1016@compA.com>;tag=[call_number]
To: "1000" <sip:1000@compA.com>[peer_tag_param]
Call-ID: [call_id]
CSeq: 2 BYE
Contact: <sip:1016@[local_ip]:[local_port]>
Max-Forwards: 70
Subject: Performance Test
Content-Length: 0

]]>
</send>

<recv response="200" crlf="true">
</recv>

<ResponseTimeRepartition value="10, 20, 30, 40, 50, 100, 150, 200"/>

<CallLengthRepartition value="10, 50, 100, 500, 1000, 5000, 10000"/>

</scenario>


Звонок на пользователя 1000 проходит и отрабатывает по сценарию на отлично, без ошибок.
==============================================================
Меняю направление на MOH ext 9664
[+] dialplan
<extension name="sipp_test">
<condition field="destination_number" expression="^(9664)$">
<!-- <action application="sched_hangup" data="+35 alloted_timeout"/> -->
<action application="answer"/>
<action application="playback" data="$${hold_music}"/>
</condition>
</extension>


Делаю ./sipp 10.222.16.30 -sf uac_FS_reg.xml -i 10.150.70.66 -l 80 -aa -mi 10.150.70.66 -rtp_echo -m 80 -nd -r 15 -auth_uri 1016@compA.com
И получаю как минимум 7 из 80 в статусе failed. SIPp дает такой вывод

[+] 
Resolving remote host '10.222.16.30'... Done.
------------------------------ Scenario Screen -------- [1-9]: Change Screen --
Call rate (length) Port Total-time Total-calls Remote-host
15.0(0 ms)/1.000s 5062 89.33 s 80 10.222.16.30:5060(UDP)

Call limit 80 hit, 0.0 s period 0 ms scheduler resolution
0 calls (limit 80) Peak was 80 calls, after 5 s
0 Running, 2 Paused, 0 Woken up
44 dead call msg (discarded) 0 out-of-call msg (discarded)
0 open sockets 0/0/0 UDP errors (send/recv/cong)

Messages Retrans Timeout Unexpected-Msg
INVITE ----------> 80 46 0
407 <---------- 80 0 0 0
ACK ----------> 80 0
INVITE ----------> 80 0
100 <---------- 50 0 0 0
180 <---------- 0 0 0 0
183 <---------- 0 0 0 0
200 <---------- E-RTD1 80 283 0 0
ACK ----------> 80 283
Pause [ 30.0s] 80 26
BYE ----------> 80 119 8
200 <---------- 72 0 0 134

------------------------------ Test Terminated --------------------------------
----------------------------- Statistics Screen ------- [1-9]: Change Screen --
Start Time | 2019-11-13 16:51:54.924085 1573642314.924085
Last Reset Time | 2019-11-13 16:53:24.258217 1573642404.258217
Current Time | 2019-11-13 16:53:24.258852 1573642404.258852
-------------------------+---------------------------+--------------------------
Counter Name | Periodic value | Cumulative value
-------------------------+---------------------------+--------------------------
Elapsed Time | 00:00:00:000000 | 00:00:00:000000
Call Rate | 0.000 cps | 0.896 cps
-------------------------+---------------------------+--------------------------
Incoming calls created | 0 | 0
Outgoing calls created | 0 | 80
Total Calls created | | 80
Current Calls | 0 |
-------------------------+---------------------------+--------------------------
Successful call | 0 | 72
Failed call | 0 | 8
-------------------------+---------------------------+--------------------------
Response Time 1 | 00:00:00:000000 | 00:00:00:000000
Call Length | 00:00:00:000000 | 00:00:00:000000
------------------------------ Test Terminated --------------------------------
2019-11-13 16:53:20.271302 1573642400.271302: Continuing call on unexpected message for Call-Id '60-16071@10.150.70.66': while expecting '200' (index 11), received 'SIP/2.0 481 Call Does Not Exist
Via: SIP/2.0/UDP 10.150.70.66:5062
From: <sip:1016@compA.com>;tag=60
To: "9664" <sip:9664@compA.com>;tag=BeB0eN91p0Q1a
Call-ID: 60-16071@10.150.70.66
CSeq: 2 BYE
User-Agent: FreeSWITCH-mod_sofia/1.10.1-release-12-f9990221e6~64bit
Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, MESSAGE, INFO, UPDATE, REGISTER, REFER, NOTIFY, PUBLISH, SUBSCRIBE
Supported: timer, path, replaces
Content-Length: 0
=====================================================================================
tcpdump на стороне машины с SIPp показывает что этот ответ отдает FS на BYE

IP 10.150.70.66.5062 > 10.222.16.30.5060: UDP, length 312
E..T.]@.@..h
.FB
........@m%BYE sip:9664@10.222.16.30:5060 SIP/2.0
Via: SIP/2.0/UDP 10.150.70.66:5062
From: <sip:1016@compA.com>;tag=76
To: "9664" <sip:9664@compA.com>;tag=1K8H5HpvejaHH
Call-ID: 76-15980@10.150.70.66
CSeq: 2 BYE
Contact: <sip:1016@10.150.70.66:5062>
Max-Forwards: 70
Subject: Performance Test
Content-Length: 0


IP 10.222.16.30.5060 > 10.150.70.66.5062: UDP, length 434
E...T...>...
...
.FB......N.SIP/2.0 481 Call Does Not Exist
Via: SIP/2.0/UDP 10.150.70.66:5062
From: <sip:1016@compA.com>;tag=76
To: "9664" <sip:9664@compA.com>;tag=1K8H5HpvejaHH
Call-ID: 76-15980@10.150.70.66
CSeq: 2 BYE
User-Agent: FreeSWITCH-mod_sofia/1.10.1-release-12-f9990221e6~64bit
Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, MESSAGE, INFO, UPDATE, REGISTER, REFER, NOTIFY, PUBLISH, SUBSCRIBE
Supported: timer, path, replaces
Content-Length: 0
=============================================================================
Дебаг на FS дает WRONG_CALL_STATE

2019-11-13 17:02:15.169108 [NOTICE] switch_channel.c:1118 New Channel sofia/internal/1016@compA.com [c6528bda-d119-445c-9572-cd91e57ea87b]
2019-11-13 17:02:15.169108 [DEBUG] switch_core_state_machine.c:585 (sofia/internal/1016@compA.com) Running State Change CS_NEW (Cur 344 Tot 16785)
2019-11-13 17:02:15.169108 [DEBUG] sofia.c:10243 sofia/internal/1016@compA.com receiving invite from 10.150.70.66:5062 version: 1.10.1 -release-12-f9990221e6 64bit
2019-11-13 17:02:15.169108 [DEBUG] sofia.c:10337 verifying acl "domains" for ip/port 10.150.70.66:0.
2019-11-13 17:02:15.169108 [DEBUG] switch_core_state_machine.c:604 (sofia/internal/1016@compA.com) State NEW
2019-11-13 17:02:15.169108 [DEBUG] sofia.c:2426 detaching session c6528bda-d119-445c-9572-cd91e57ea87b
2019-11-13 17:02:15.189083 [WARNING] switch_core_state_machine.c:688 d9c72d08-b207-46d6-8ede-e5441e1734bf sofia/internal/1016@compA.com Abandoned
2019-11-13 17:02:15.189083 [NOTICE] switch_core_state_machine.c:691 Hangup sofia/internal/1016@compA.com [CS_NEW] [WRONG_CALL_STATE]


Но, до 40 одновременных сессий - дают полное выполнение теста.
К примеру на 500 одновременных сессиях количество фейлов уже за 260.

Подскажите пожалуйста, с чем может быть связано такое поведение? Лимиты кроме как на cps и сессии не менял.
Не верится что уперся в потолок для сервера.
Сервер виртуалка, на базе KVM
8 ядер, 25Gb Ram.

Спасибо!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Тест нагрузки SIPp Abandoned
СообщениеДобавлено: 13 ноя 2019 16:58 

Зарегистрирован: 11 июл 2019 14:27
Сообщения: 5
Забыл добавить
БД выведена в postgres на отдельную машину в одной сети с FS.

Сейчас запустил тест на 1000 сессий
среди кучи сообщений
2019-11-13 18:47:24.925324 [WARNING] switch_core_state_machine.c:688 0ed516f3-9fdd-42d6-b524-fb41cf1b0426 sofia/internal/1016@compA.com Abandoned
проскочила ошибка -
2019-11-13 18:47:24.745322 [ERR] mod_signalwire.c:371 Curl Result 28, Error: Operation timed out after 5000 milliseconds with 0 out of 0 bytes received

Попробовал поставить параметр в switch.conf
<param name="max-db-handles" value="5000"/>
Без результата.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Тест нагрузки SIPp Abandoned
СообщениеДобавлено: 14 ноя 2019 00:26 

Зарегистрирован: 11 июл 2019 14:27
Сообщения: 5
UPD
Попробовал убрать поля tag из сценария - звонки больше не падают в abandoned и wrong_call_state.

При более детальном рассмотрении трассировки заметил что FS начинает активно слать BYE после 32 секунд звонка.
Соответственно уже на BYE от SIPp Свич отвечает 481 ошибкой.
Выходит так что любой тест общей длительностью до 32 секунд - отрабатывает нормально. Свыше - приходят BYE от Свича и звонки фейлятся.

[+] SIPp scenario
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE scenario SYSTEM "sipp.dtd">

<scenario name="UAC FS REG">
<send retrans="500">
<![CDATA[

INVITE sip:9664@compA.com SIP/2.0
Via: SIP/2.0/UDP [local_ip]:[local_port]
From: "1016" <sip:1016@compA.com>
To: "9664" <sip:9664@compA.com>
Call-ID: [call_id]
CSeq: 1 INVITE
Contact: <sip:1016@[local_ip]:[local_port];ob>
Route: <sip:[remote_ip]:[remote_port];lr>
Max-Forwards: 70
Subject: Performance Test
Content-Type: application/sdp
Content-Length: [len]

v=0
o=user1 53655765 2353687637 IN IP[local_ip_type] [local_ip]
s=pjmedia
c=IN IP[media_ip_type] [media_ip]
t=0 0
m=audio [media_port] RTP/AVP 0
a=rtpmap:0 PCMA/8000

]]>
</send>

<recv response="407" auth="true">
</recv>

<send>
<![CDATA[

ACK sip:9664@compA.com SIP/2.0
Via: SIP/2.0/UDP [local_ip]:[local_port]
From: <sip:1016@compA.com>
To: "9664" <sip:9664@compA.com>
Call-ID: [call_id]
CSeq: 1 ACK
Contact: <sip:1016@[local_ip]:[local_port]>
Max-Forwards: 70
Content-Length: 0

]]>
</send>

<send>
<![CDATA[

INVITE sip:9664@compA.com; SIP/2.0
Via: SIP/2.0/UDP [local_ip]:[local_port]
From: <sip:1016@compA.com>
To: "9664" <sip:9664@compA.com>
Call-ID: [call_id]
CSeq: 2 INVITE
Contact: <sip:1016@[local_ip]:[local_port]>
[authentication username="1016" password="password"]
Max-Forwards: 70
Subject: Performance Test
Content-Type: application/sdp
Content-Length: [len]

v=0
o=user1 53655765 2353687637 IN IP[local_ip_type] [local_ip]
s=pjmedia
c=IN IP[media_ip_type] [media_ip]
t=0 0
m=audio [media_port] RTP/AVP 0
a=rtpmap:0 PCMA/8000

]]>
</send>

<recv response="100" optional="true">
</recv>
<recv response="180" optional="true">
</recv>
<recv response="183" optional="true">
</recv>
<recv response="200" rtd="true" rrs="true">
</recv>

<send>
<![CDATA[

ACK sip:9664@[remote_ip]:[remote_port] SIP/2.0
Via: SIP/2.0/UDP [local_ip]:[local_port]
From: <sip:1016@compA.com>
To: "9664" <sip:9664@compA.com>
Call-ID: [call_id]
CSeq: 1 ACK
Contact: <sip:1016@[local_ip]:[local_port]>
Max-Forwards: 70
Subject: Performance Test
Content-Length: 0

]]>
</send>

<pause milliseconds="10000"/>


<send retrans="500">
<![CDATA[

BYE sip:9664@[remote_ip]:[remote_port] SIP/2.0
Via: SIP/2.0/UDP [local_ip]:[local_port]
From: <sip:1016@compA.com>
To: "9664" <sip:9664@compA.com>
Call-ID: [call_id]
CSeq: 2 BYE
Contact: <sip:1016@[local_ip]:[local_port]>
Max-Forwards: 70
Subject: Performance Test
Content-Length: 0

]]>
</send>

<recv response="200" crlf="true">
</recv>

<ResponseTimeRepartition value="10, 20, 30, 40, 50, 100, 150, 200"/>

<CallLengthRepartition value="10, 50, 100, 500, 1000, 5000, 10000"/>

</scenario>

Где то я чего то упустил...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Тест нагрузки SIPp Abandoned
СообщениеДобавлено: 13 фев 2020 08:43 

Зарегистрирован: 11 июл 2019 14:27
Сообщения: 5
Только дошли руки обновить и закрыть вопрос.
Проблема с отбоем после 32 секунд в сценарии Sipp.
Поправил сценарий, peer_tag_param все же нужен.
[+] 
<scenario name="UAC FS REG">
<send retrans="500">
<![CDATA[

INVITE sip:[service]@compA.com SIP/2.0
Via: SIP/2.0/UDP [local_ip]:[local_port]
From: "1016" <sip:1016@compA.com:[local_port]>;tag=[call_number]
To: "[service]" <sip:[service]@compA.com:[remote_port]>
Call-ID: [call_id]
CSeq: 1 INVITE
Contact: <sip:1016@[local_ip]:[local_port];ob;transport=UDP>
Route: <sip:[remote_ip]:[remote_port];lr>
Max-Forwards: 70
Subject: Performance Test
Content-Type: application/sdp
Content-Length: [len]

v=0
o=user1 53655765 2353687637 IN IP[local_ip_type] [local_ip]
s=pjmedia
c=IN IP[media_ip_type] [media_ip]
t=0 0
m=audio [media_port] RTP/AVP 0
a=rtpmap:0 PCMA/8000

]]>
</send>


<recv response="407" auth="true">
</recv>

<send>
<![CDATA[

ACK sip:[service]@compA.com SIP/2.0
Via: SIP/2.0/UDP [local_ip]:[local_port]
[last_From:]
[last_To:][peer_tag_param]
[last_Call-ID:]
CSeq: 1 ACK
Contact: <sip:1016@[local_ip]:[local_port]>
Max-Forwards: 70
Content-Length: 0

]]>
</send>

<send retrans="500">
<![CDATA[

INVITE sip:[service]@compA.com; SIP/2.0
Via: SIP/2.0/UDP [local_ip]:[local_port]
From: <sip:1016@compA.com>;tag=[call_number]
To: "[service]" <sip:[service]@compA.com>
Call-ID: [call_id]
CSeq: 2 INVITE
Contact: <sip:1016@[local_ip]:[local_port]>
Max-Forwards: 70
Subject: Performance Test
Content-Type: application/sdp
Content-Length: [len]
[authentication username=1016 password=password]

v=0
o=1016 53655765 2353687637 IN IP[local_ip_type] [local_ip]
s=pjmedia
c=IN IP[media_ip_type] [media_ip]
t=0 0
m=audio [media_port] RTP/AVP 0
a=rtpmap:0 PCMA/8000

]]>
</send>

<recv response="100" optional="true">
</recv>
<!-- <recv response="180" optional="true">
</recv>
<recv response="183" optional="true">
</recv> -->
<recv response="200">
</recv>

<send>
<![CDATA[

ACK sip:[service]@[remote_ip]:[remote_port] SIP/2.0
Via: SIP/2.0/UDP [local_ip]:[local_port]
[last_From:]
[last_To:][peer_tag_param]
[last_Call-ID:]
Max-Forwards: 70
Contact: <sip:1016@[local_ip]:[local_port]>
CSeq: 2 ACK
Content-Length: 0

]]>
</send>

<pause milliseconds="35000"/>

<send retrans="500">
<![CDATA[

BYE sip:[service]@[remote_ip]:[remote_port] SIP/2.0
Via: SIP/2.0/UDP [local_ip]:[local_port]
[last_From:]
[last_To:]
[last_Call-ID:]
CSeq: 3 BYE
Contact: <sip:1016@[local_ip]:[local_port]>
Max-Forwards: 70
Subject: Performance Test
Content-Length: 0

]]>
</send>

<recv response="200" crlf="true">
</recv>

<ResponseTimeRepartition value="10, 20, 30, 40, 50, 100, 150, 200"/>

<CallLengthRepartition value="10, 50, 100, 500, 1000, 5000, 10000"/>

</scenario>


С этим сценарием проблема пропала.

Так же, узким местом была ширина канала до свича.
Сейчас уже не вспомню параметров на которых тестировал(
Точно уже не скажу, после устранения всех узких мест результат вышел что то вроде 3500 сессий единовременно без потерь на средней загрузке CPU в 40%.
Просадок по качеству звука не заметил. (подключался к тому же ext. и слушал параллельно с тестом)


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 39


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB