On Thu, 24 Oct 2013, Pavel Levshin wrote:

So he would have a pool of TCP connections in parallel, balancing the load between them. In some cases, it happens naturally when many TCP clients are exist.

we are talking about sending logs, not receiving them. The client is rsyslog.

there is not currently a way to have multiple connections in parallel with rsyslog.

In addition, implementing this properly in rsyslog would require that rsyslog gain the ability to do far more than just round-robin balancing between the different connections in the cases where one destination is slower than others.

RebindInterval for high-speed TCP is like balancing a water cannon between people, pointing to one of them at once. Better than nothing, but still not so good.

In theory you are correct, but it is the only tool available, and in practice it works very well. It lets rsyslog concentrate on it's job and lets you use your load balancer of choice to manage the load balancing.

David Lang


--
Pavel Levshin


24.10.2013 2:38, David Lang:
On Wed, 23 Oct 2013, Pavel Levshin wrote:

IMHO, for high-load TCP, rebindinterval is counter-productive, because you need to establish a new connection each time. But yes, this parameter exists.

rebindinterval is how many messages you send over each connection, you would only have to set a new connection each time if you set it to 1. you should set it to something that approaches a second or so of traffic (or at least a significant fraction of a second, keep in mind low traffic periods if you want your traffic still balanced then)

Load balancing is very dependent on nature of your load, on your bottlenecks, and so on. Why do you want to balance TCP connections?

because the system he is sending to doesn't have the capacity to handle the full feed, so he wants to spread the traffic over multiple machines. To do so, he needs to have the TCP connection re-established periodically to give the load balancer a chance to redistribute traffic.

David Lang


--
Pavel Levshin


23.10.2013 23:26, Erik Steffl:
What are recommendations for use of rsyslog with loadbalancers? We have setup where number of machines run rsyslog and forward syslog messages to central location using RELP protocol (using omrelp module).

The central location is a load balancer with cluster of machines behind it (that run rsyslog and use imrelp).

I assume this is not an uncommon scenario so hoping that there is a way to do this in a way that does load balancing.

The problem is that TCP connection stays open for a long time so there is effectively no load balancing done. Looking for a solution I found http://www.rsyslog.com/load-balancing-for-rsyslog/ which mentions RebindInterval which is documented in omfwd docs http://www.rsyslog.com/doc/omfwd.html

However I don't see RebindInterval in omrelp docs http://www.rsyslog.com/doc/omrelp.html and when I try to use it rsyslog segfaults (in relpCltHintBurstEnd in librelp.so.0, also sent email specifically about that).

Should RebindInterval work for omrelp? Or is there some other way to re-open TCP connection so that load balancing works?

  Thanks!

    erik
_______________________________________________
rsyslog mailing list
http://lists.adiscon.net/mailman/listinfo/rsyslog
http://www.rsyslog.com/professional-services/
What's up with rsyslog? Follow https://twitter.com/rgerhards
NOTE WELL: This is a PUBLIC mailing list, posts are ARCHIVED by a myriad of sites beyond our control. PLEASE UNSUBSCRIBE and DO NOT POST if you DON'T LIKE THAT.

_______________________________________________
rsyslog mailing list
http://lists.adiscon.net/mailman/listinfo/rsyslog
http://www.rsyslog.com/professional-services/
What's up with rsyslog? Follow https://twitter.com/rgerhards
NOTE WELL: This is a PUBLIC mailing list, posts are ARCHIVED by a myriad of 
sites beyond our control. PLEASE UNSUBSCRIBE and DO NOT POST if you DON'T LIKE 
THAT.

Reply via email to