On Thu, May 28, 2009 at 12:59 PM, Iņaki Baz Castillo <ibc@aliax.net> wrote:
2009/5/28 Pascal Maugeri <pascal.maugeri@gmail.com>:
> FYI, I've changed the configuration to:
>
> tcp_children=8
> tcp_send_timeout=3
> tcp_connect_timeout=5
>
> and it looks we get less often the problem described here ( tcp_connect/send
> time out error).

This is a good workaround, but the problem is that it replies on the
clients behaviour and it shouldn't occur (a server cannot get
"blocked" due to clients problems). I hope TCP handling will be
improved in SIP-Router.

Indeed the very same problem occured after a while :-(
It looks my new configuration only "delayed" it.

The symptoms are:

-  errors in log file:

May 27 14:20:11 server2-operations /usr/local/sbin/kamailio[26227]: WARNING:core:send2child: no free tcp receiver, connection passed to the leastbusy one (1)
May 27 14:20:13 server2-operations /usr/local/sbin/kamailio[26221]: ERROR:core:tcp_blocking_connect: timeout 10 s elapsed from 10 s
May 27 14:20:13 server2-operations /usr/local/sbin/kamailio[26221]: ERROR:core:tcpconn_connect: tcp_blocking_connect failed
May 27 14:20:13 server2-operations /usr/local/sbin/kamailio[26221]: ERROR:core:tcp_send: connect failed
May 27 14:20:13 server2-operations /usr/local/sbin/kamailio[26221]: ERROR:sl:msg_send: tcp_send failed

- in top kamailio process have high values in the %CPU column such as 50% or 99% !?

- when all kamailio processes have reached this top values, it is impossible to connect a new client untill we reset kamailio :-/

I will try the parameter
modparam("registrar", "tcp_persistent_flag", 7)
from the registrar module.

-pascal



 


> I confirm that the problem was triggered by the fact that our client is
> using TCP only and that the tcp connections were unavailable after some
> presence test (many NOTIFY messages sent to TCP).
>
> I'm curious to know how many children do you use in a typical configuration
> ? 4, 8, more? Of course it depends on the traffic expected but let me know
> that this is parameter you always increase in a production environment.

Theorically you can add so many TCP listeners as you desire (depending
on your CPU's and memory). But if your environment makes high usage of
TCP then increase it as much as possible.



--
Iņaki Baz Castillo
<ibc@aliax.net>