Hello,
On 7/10/13 7:13 AM, Allen Zhang wrote:
Hi list,
I have a loadbalancer before sipproxies. I call t_reley() on the
dispatcher to forward requests to destinations.
All goes well under low load.
But when load goes up to 500 requests/s, the loadbalancer still sends
requests via only one tcp connection. This maxes out the tcp write queue.
Of course I can increase the 'tcp_conn_wq_max' value but it doesn't
solve the root problem.
How do I make the loadbalancer start a new tcp connection to the
destination when existing one becomes too busy? (Is it possible?)
there is no detection for such case and it will add some complexity to
manage a group of connections to same destination (but patches will be
considered, of course).
However, here are some workarounds:
- use set_forward_close(), but note its issues regarding replies:
http://www.kamailio.org/wiki/cookbooks/devel/core#set_forward_close
- listen on several local tcp sockets and use selectively one of them
via forcing local socket for sending (see $fs variable or
force_send_socket(...))
Cheers,
Daniel
--
Daniel-Constantin Mierla -
http://www.asipto.com
http://twitter.com/#!/miconda -
http://www.linkedin.com/in/miconda