[OpenSIPS-Users] number of opensips children
Bogdan-Andrei Iancu
bogdan at voice-system.ro
Wed Feb 3 11:28:10 CET 2010
Hi Brian,
The test I mentioned was done with UDP.
The messages you are seeing means that the TCP MANAGER process sees that
all the TCP WORKER processes are already processing other messages, so
no one is free (idle), so , it will queue the current active connection
to one of the TCP WORKERs...
There is nothing wrong with this, it is the normal way it works - of
course, if you have too few TCP workers, the probability to have queuing
is higher.
In UDP the queueing is not visible at application level as it is done by
the kernel in the receive buffer that is assigned to the socket.
In TCP the queueing is visible as there is a single TCP MANAGER process
managing the connections (detecting the reads, connects, etc) which is
quite fast (not doing any processing) -> the queueing is moved between
the TCP MANAGER and TCP WORKERS.
Also, to be sure you got it right, there is no relation between the TCP
WORKER and a connection. A TCP WORKER process is just reading and
processing a SIP message at a certain time. Next SIP message from the
same connection may end up in a different TCP WORKER proc.
and this has nothing to do with the tcp_persistent_flag.
Regards,
Bogdan
opensipslist at encambio.com wrote:
> Hello Bogdan,
>
> 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:
>>>
>>>> To see what processes you have and what they are doing, do:
>>>>
>>>> opensipsctl fifo ps
>>>>
>>>>
>>> # opensipsctl fifo ps
>>> Process:: ID=0 PID=24975 Type=attendant
>>> Process:: ID=1 PID=24977 Type=SIP receiver udp:123.234.210.1:5060
>>> Process:: ID=2 PID=24978 Type=time_keeper
>>> Process:: ID=3 PID=24979 Type=timer
>>> Process:: ID=4 PID=24980 Type=MI FIFO
>>>
>>> [...]
>>>
>>> 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.
>
> By the way, each of the 16 UACs registered to the 8 TCP listener
> processes is avoiding NAT problems by keeping the TCP connection
> open by setting the tcp_persistent_flag.
>
> Is OpenSIPS expecting there to be at least one TCP listener process
> which is not encumbered by the tcp_persistent_flag?
>
> Regards,
> Brian
>
> _______________________________________________
> Users mailing list
> Users at lists.opensips.org
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>
>
--
Bogdan-Andrei Iancu
www.voice-system.ro
More information about the Users
mailing list