[OpenSIPS-Users] Fine tuning high CPS and msyql queries
Alex Balashov
abalashov at evaristesys.com
Fri Jun 12 23:28:14 EST 2020
On 6/12/20 7:20 PM, Calvin Ellison wrote:
> I think the important point here is that the receive buffers are used to
> hold received data until it is read by the application. In fact, too
> small of a receive buffer would cause packets to be discarded outright,
> regardless of how fast the application can respond. Not knowing how
> large of a buffer is needed was the problem, not the raw processing
> power. It doesn't matter how fast I can eat if the server only has very
> small plates to bring the food every trip from the kitchen.
In absolute terms, this is true. But if your kitchen is putting out so
much food that not even ~200,000 plates "in flight" will do, you've got
a bigger problem to address and adding more plates is just papering it
over.
Monitor your receive queue scrupulously at a very high timing
resolution. If you found default values for rmem_max to be "absolutely
terrible", that means the backlog was increasing monotonically until you
ran out of space. If you increase the queue depth, you will be able to
prolong this effect for a while.
The kernel's packet queue is a backstop--an emergency release valve, not
a main thoroughfare. It's there to help you deal with ephemeral
congestion caused by things like periodic big-lock background process
contention, scheduler hiccups, disk controller patrol reads, etc. But
the base load should result in a long-run queue backlog of zero.
Applications which properly cope with their workload don't cause
non-trivial packet or connection queueing on the OS side.
-- Alex
--
Alex Balashov | Principal | Evariste Systems LLC
Tel: +1-706-510-6800 / +1-800-250-5920 (toll-free)
Web: http://www.evaristesys.com/, http://www.csrpswitch.com/
More information about the Users
mailing list