Hello!
for this ST/SH project, we are using Kamailio 5.8.4 in stateless mode, making HTTP requests to a REST API (Java Spring) that will reply with a JSON object, and then Kamailio replaces the Contact header and sends a SIP 300 Multiple Choice reply to the SBC
that sent the initial INVITE.
Kamailio is running on a VM with 4vCPUs and 4GB RAM and 2 NICs.
On NIC ens224 there is a Virtual IP managed by Keepalived.
Kamailio is listening on port 5060 on ens224 and set with 32 children process (tried with 8, 16, 24 and also 64, but with this value it was a lot worst).
We are doing load performance tests on our PreProd environment. With the SBC we are sending 450 to 600 CAPS to Kamailio, and what we noticed is that above 450 CAPS, and after less than 1 minute, Kamailio only replies SIP 100 to some INVITEs. We also could
figure out that Kamailio is not receiving all the INVITES, despite having proved that ALL invites are sent to the server.
It seems to me that, for some reason, the OS is somehow not able to deliver *all* SIP packets to Kamailio, because:
- sngrep does capture all the SIP packets and shows the flows
- though the flow shows SIP invite coming from SBC to Kamailio Server, there is no SIP 100 replied back to SBC, even though this is the 1st thing kamailio does, so, for me, Kamailio did not received the SIP Invite
- picking a call with reinvites, which after some seconds, SBC cancels, if I copy the Call-ID value and grep on kamailio's logs, I just do not find any content!
$ ss -4 -n -l | grep 5060
According to the article, the 3rd column should be as near 0 as possible, ideally 0.
While I am waiting for some sysadmin with root permissions to be available and modify some of the network parameters on this VM, I wonder if anyone has some tips to share on how to solve this behaviour. I'm not sure, either, what parameters to change or
if they should be changed! The goal is to have a minimum 750 CAPS.
Lastly, some parts of the code:
Kamailio.cfg: