On Thu, May 28, 2009 at 12:59 PM, Iñaki Baz Castillo <ibc(a)aliax.net> wrote:
2009/5/28 Pascal Maugeri
<pascal.maugeri(a)gmail.com>om>:
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(a)aliax.net>