[OpenSIPS-Users] number of opensips children

opensipslist at encambio.com opensipslist at encambio.com
Tue Feb 2 20:11:58 CET 2010


Hello,

An mar., févr 02, 2010, opensipslist at encambio.com schrieb:
>An mer., déc  23, 2009, Bogdan-Andrei Iancu schrieb:
>>opensips at encambio.com wrote:
>>> An ven., déc 18, 2009, Bogdan-Andrei Iancu schrieb:
>>> My gut feeling is that having four UDP listening processes and four
>>> TCP listening processes is about right for us, because we only have
>>> a handful of UACs participating infrequently (5 calls per day.)
>>>   
>>Actually that is more than needed - during some performance tests (only 
>>simply call relaying) we managed to put 6K cps in a single process.
>>
>I have eight TCP listeners configured and about sixteen UACs are
>connected. I get a ton of these warnings whenever REGISTER or INVITE
>messages come in:
>
>  Feb 02 18:17:22 name.host.tld <warning> opensips[02126]: WARNING:core:send2child: no free tcp receiver, connection passed to the leastbusy one (1)
>  Feb 02 18:17:25 name.host.tld <warning> opensips[02126]: WARNING:core:send2child: no free tcp receiver, connection passed to the leastbusy one (1)
>
>Because you mentioned that you benchmarked 6K CPS with a single
>process (was it TCP?), I'd like to know if you got as many warnings
>as well. One question is:
>
>  What does 'free tcp receiver' mean? I assumed that listening
>  TCP ports were free to accept as many connections as needed.
>
> [...]
>
>Is OpenSIPS expecting there to be at least one TCP listener process
>which is not encumbered by the tcp_persistent_flag?
>
At risk of answering my own question and questioning my own answer,
I'd like to suggest the following change:

--- tcp_main.c.orig	2010-01-18 12:33:49.151095000 +0100
+++ tcp_main.c	2010-02-02 20:07:15.263065567 +0100
@@ -911,7 +911,7 @@
 	tcp_children[idx].busy++;
 	tcp_children[idx].n_reqs++;
 	if (min_busy){
-		LM_WARN("no free tcp receiver, connection passed to the least"
+		LM_INFO("no free tcp receiver, connection passed to the least "
 				"busy one (%d)\n", min_busy);
 	}
 	LM_DBG("to tcp child %d %d(%d), %p\n", idx, tcp_children[idx].proc_no,

That would correct the defective english spelling 'leastbusy' as
well as ridding the log of a properly running OpenSIPS server of
false warnings. I'm assuming of course, that it's perfectly okay
for TCP listener processes to keep a TCP connection open by using
the tcp_persistent_flag and accept new SIP requests at the same
time.

Regards,
Brian



More information about the Users mailing list