Hello everyone!
I have the following problem with Asterisk on CentOS 7, when I run test with SIPp (UAC scenario), asterisk’s udp socket 5060 gets overflowed. I ran absolutely the same test on virtual machine with Ubuntu 16.04 and didn’t suffer from that kind of issue.
Testing servers info:
I have two virtual servers with CentOS Linux release 7.5.1804 (Core) (172,16,100.102/103), both have Asterisk 16.1.1 and SIPp v3.5.2 installed. Also I have Ubuntu 16.04 (172.16.100.196) (Virtual Machine) with Asterisk 14, which I used to compare results.
CentOS7 test results:
SIPp command to run test:
./sipp 172.16.100.102 -s 100 -i 172.16.100.103 -d 100s -l 5000 -mi 172.16.100.103 -r 50
Here is the link to the google disc, there are test results:
As the result of slow response time and overflowed buffer I get next errors:
chan_sip.c:4119 retrans_pkt: Retransmission timeout reached on transmission 322-6888@172.16.100.103 for seqno 1 (Critical Response) -- See https://wiki.asterisk.org/wiki/display/AST/SIP+Retransmissions
Ubuntu 16.04.4 LTS (Xenial Xerus) test results:
SIPp command to run test:
./sipp 172.16.100.196 -s 100 -i 172.16.100.103 -d 100s -l 5000 -mi 172.16.100.103 -r 50
Possible solutions that I tryed:
- I tried to increase socket buffer size, didn’t work out, it also gets full, just a little bit later.
- I tried to recompile asterisk with less modules.
- Used TCP instead of UDP, situation is much better, but I can’t use TCP in my project.
- I turned off a lot of useless plugins.
Little conclusion:
When I do make outgoing calls from asterisk to SIPp (UAS Scenario), I am able to handle ~1500 concurrent calls, but when Asterisk receives calls I start to suffer from buffer overflow. What can cause Asterisk to answer so slowly on CentOS7 ?