To add some information if useful. In our case there are 2 main “actions” 
performed as processing when http service is called that takes a lot of time 
(there are more but are negligible against these 2)

1. A query to an Diameter DRA (which for external reasons or customer reasons) 
takes an average of 150ms (and in some other cities of the deploys can take 
more because of the delay in the links)
2. A query to a rest webservice that is in AWS, not that bad as point 1 but 
still bad (~70ms)

So, in the best of scenarios, we have ~225ms, maybe if the DRA load balances to 
another HSS we get ~180ms total call processing.

That is bad, really bad.

To probe the idea and before any major changes in any part, I started to keep 
DRA responses in a redis (we use dragonfly), it’s not consistent in terms of 
our call processing flow but my idea was to “remove” the delay of the diameter 
query (I run the query, keep the result in redis, when a new request arrives 
for the same value I use the cached value and send a new DRA query in other 
thread to avoid lock the current one and update the redis).

With this, we removed the DRA query wait, so 220ms became 70/72ms.

Instantly all cpu usage, all retransmissions, everything disappeared, cpu, mem 
went down drastically, etc etc.

That’s why I mentioned ’wait time is the enemy’, http is not (maybe is not your 
best friend but not the enemy). If it works, there’s an analogy, you can try to 
improve aerodynamics, engine and whatever in a F1 car, but if the driver is 
heavy …

Hope it helps


> On Dec 19, 2024, at 5:18 PM, Alex Balashov via sr-users 
> <[email protected]> wrote:
> 
> 
>> On Dec 19, 2024, at 1:06 pm, Calvin E. via sr-users 
>> <[email protected]> wrote:
>> 
>> Consider scaling out instead of scaling up. Now that you know the
>> apparent limit of a single node for your use case, put it behind a
>> Kamailio dispatcher.
> 
> On the other hand, you might consider scaling up first, since HTTP performs 
> so badly that there is lots of improvement to be squeezed out of optimising 
> that even a little. 
> 
> You might think of scaling out as a form of premature optimisation. :-)
> 
> -- Alex
> 
> -- 
> Alex Balashov
> Principal Consultant
> Evariste Systems LLC
> Web: https://evaristesys.com
> Tel: +1-706-510-6800
> 
> __________________________________________________________
> Kamailio - Users Mailing List - Non Commercial Discussions -- 
> [email protected]
> To unsubscribe send an email to [email protected]
> Important: keep the mailing list in the recipients, do not reply only to the 
> sender!

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

Reply via email to