TL;DR;  There's not enough information provided to give any real feedback.


First, to address the elephant in the room, this is a bizarre business 
requirement:


  *   35% of invites should be handled by async_workers and 65% with be handled 
by main children

Business requirements should concern scalability, security, technology stack 
(i.e. If their environment uses postgres,  that could be a business 
requirement).  The internals of *how* kamailio processes a message shouldn't be 
relevant to a business requirement (it may be necessary to achieve a business 
requirement, but that's not the same thing).


With that said, sometimes requirements like this get stated and that's the 
world we live in.

Next, It's not really clear from your description how you're using the async 
workers here.  Consider the following psuedo kamalio config:

#!KAMAILIO
loadmodule "sl"
children=64
async_worker=128

request_route {
    sl_send_reply("404", "Not Found");
}

In that config, simply stating async_workers won't cause anything here to be 
handled by those workers.  There's also the fact that the config itself bears 
massively on how many CPS can be handled.  The config above, while not 
particularly useful, will handle way more than 1500 CPS (or more accurately 
requests per second).

You state that "when I updated the data in database to not use anymore async 
workers", but what is changing in the database, etc?  You can't really show two 
lines of your configuration and expect anyone to know where you have processing 
latency, etc.

Finally, I'd point out that this is a very number of worker processes, and that 
children gets applied to every listener.  You don't state what your private 
memory size is, but assuming that Kamailio starts on the loopback address and a 
single network interface as both TCP and UDP, you'd have 192 processes for your 
listeners (tcp workers are global instead of per listener, iirc), another 128 
processes for your async workers, and about a dozen more default processes 
(main process, timers, etc).  Assuming that you are using the default private 
memory allocation of 8 MB/process, that makes 2.8 GB for private memory alone.  
While that's not a massive amount of memory on a modern system, it's also 
likely you'd want to bump up that 8 MB setting, too.

Regards,
Kaufman


________________________________
From: elhar.mohamed--- via sr-users <[email protected]>
Sent: Friday, August 16, 2024 4:24 AM
To: [email protected] <[email protected]>
Cc: [email protected] <[email protected]>
Subject: [SR-Users] low performance with udp_children and async_workers

CAUTION: This email originated from outside the organization. Do not click 
links or open attachments unless you recognize the sender and know the content 
is safe.


Hello,

Based on business requirements, 35% of invites should be handled by 
async_workers and 65% with be handled by main children.
The target is 1500cps.
I'm using the following conf :
children=64
async_worker=128

when doing performance tests using SIPp, I figured out the 1500cps is well 
supported by the conf above, but when I updated the data in database to not use 
anymore async workers, the cps is getting decreased and it was between 200 and 
500.

This a client requirements is to be able to enable/disable feature that needs 
to be handled by async workers.

Could you please help me on this?

Thanks in advance
__________________________________________________________
Kamailio - Users Mailing List - Non Commercial Discussions
To unsubscribe send an email to [email protected]
Important: keep the mailing list in the recipients, do not reply only to the 
sender!
Edit mailing list options or unsubscribe:
__________________________________________________________
Kamailio - Users Mailing List - Non Commercial Discussions
To unsubscribe send an email to [email protected]
Important: keep the mailing list in the recipients, do not reply only to the 
sender!
Edit mailing list options or unsubscribe:

Reply via email to