[SR-Users] how to make dispatcher module use more than one tcp connections to the destinations?

Daniel-Constantin Mierla miconda at gmail.com
Wed Jul 10 12:25:57 CEST 2013


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

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sip-router.org/pipermail/sr-users/attachments/20130710/f05163f4/attachment.html>


More information about the sr-users mailing list