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 http://unixhelp.ed.ac.uk/CGI/man-cgi?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