Re: HAProxy 1.4.8 Tunning for load balancing 3 servers

2011-09-29 Thread Mariusz Gronczewski
Hi,

IMO 1st thing would be setting up some kind of monitoring (haproxy
frontend/backend stats and also server load), and haproxy logging,
this makes debugging easier.
Also check if your benchmarking tool didnt max out CPU/bandwidth, and
try to use multiple machines for that (then u can get stats about
conns/sec from haproxy)

Alternative way of balancing load is (in addition to weight) setting
connection limit per server, so if you know that for example small
server can handle 20 simultaneous connections and over that
performance of that server drops, set maxconn for that serv to 20 and
let haproxy queue/redispatch ( option redispatch) excess connections
so your servers always work on "maximum performance" point

What is the average response time on not loaded server ? If for
example serving request takes 10ms then with 128 simult. connections
your benchmark tool can't do more than 12k req/sec, if it's 50 ms  it
can't do more than 1/ ( 0.05 / 128 ) = 2 560 conn/sec.

2011/9/28 Ivan Hernandez :
> Hello,
>
> I have 3 webservers, a little old one that can handle 350req/s, a middle one
> that handles 1700req/s and a bigger one that handles 2700req/s on tests with
> the apache benchmark tool with 128 simultaneous connections. So I decided to
> put haproxy as load balancer in other server so i can (theorically) reach up
> to 4500req/s.
>
> I worked for a while trying many different configurations but the systems
> seems to have a limit of the fastest server on the whole cluster. If I take
> out from the cluster 1 or 2 servers, the haproxy performance is always the
> same of the fastest server in the cluster.
> Of course, load of each individual server goes down, what means that
> requests are distributed between them, but speed doesn't goes up.
>
> So, here I copy my config in case it has some obvious error:
>
> Thanks !
> Ivan
>
> global
>    log 127.0.0.1    local0
>    log 127.0.0.1    local1 notice
>    maxconn 8192
>    user haproxy
>    group haproxy
>
> defaults
>    log    global
>    retries    3
>    maxconn    8192
>    contimeout    5000
>    clitimeout    5
>    srvtimeout    5
>
> listen  web-farm 0.0.0.0:80
>    mode http
>    option httpclose
>    option abortonclose
>    balance roundrobin
>    server small 192.168.1.100:80 weight 1 check inter 2000 rise 2 fall 5
>    server medium 192.168.1.101:80 weight 2 check inter 2000 rise 2 fall 5
>    server big 192.168.1.102:80 weight 8 check inter 2000 rise 2 fall 5
>
>
>



RE: HAProxy 1.4.8 Tunning for load balancing 3 servers

2011-09-29 Thread John Lauro
I suggest you use balance leastconn instead of roundrobin.  That way the
weights effect the ratios, but they are not locked in.  If a server clears
connections faster than the others, it will get more requests...  if it
falls behind it will get less...

Given that multiple factors impact how many req/s a server can do such as
number of cores, it's possible one server is faster at low loads with low
latency responses, but under heavy loads a different server might have
higher latency but can actually handle more simultaneous connections
better and in total be faster.



> -Original Message-
> From: Ivan Hernandez [mailto:ihernan...@kiusys.com]
> Sent: Wednesday, September 28, 2011 7:08 AM
> To: haproxy@formilux.org
> Subject: HAProxy 1.4.8 Tunning for load balancing 3 servers
> 
> Hello,
> 
> I have 3 webservers, a little old one that can handle 350req/s, a middle
> one that handles 1700req/s and a bigger one that handles 2700req/s on
> tests with the apache benchmark tool with 128 simultaneous connections.
> So I decided to put haproxy as load balancer in other server so i can
> (theorically) reach up to 4500req/s.
> 
> I worked for a while trying many different configurations but the
> systems seems to have a limit of the fastest server on the whole
> cluster. If I take out from the cluster 1 or 2 servers, the haproxy
> performance is always the same of the fastest server in the cluster.
> Of course, load of each individual server goes down, what means that
> requests are distributed between them, but speed doesn't goes up.
> 
> So, here I copy my config in case it has some obvious error:
> 
> Thanks !
> Ivan
> 
> global
>  log 127.0.0.1local0
>  log 127.0.0.1local1 notice
>  maxconn 8192
>  user haproxy
>  group haproxy
> 
> defaults
>  logglobal
>  retries3
>  maxconn8192
>  contimeout5000
>  clitimeout5
>  srvtimeout5
> 
> listen  web-farm 0.0.0.0:80
>  mode http
>  option httpclose
>  option abortonclose
>  balance roundrobin
>  server small 192.168.1.100:80 weight 1 check inter 2000 rise 2 fall
5
>  server medium 192.168.1.101:80 weight 2 check inter 2000 rise 2
fall 5
>  server big 192.168.1.102:80 weight 8 check inter 2000 rise 2 fall 5
> 




HAProxy 1.4.8 Tunning for load balancing 3 servers

2011-09-28 Thread Ivan Hernandez

Hello,

I have 3 webservers, a little old one that can handle 350req/s, a middle 
one that handles 1700req/s and a bigger one that handles 2700req/s on 
tests with the apache benchmark tool with 128 simultaneous connections. 
So I decided to put haproxy as load balancer in other server so i can 
(theorically) reach up to 4500req/s.


I worked for a while trying many different configurations but the 
systems seems to have a limit of the fastest server on the whole 
cluster. If I take out from the cluster 1 or 2 servers, the haproxy 
performance is always the same of the fastest server in the cluster.
Of course, load of each individual server goes down, what means that 
requests are distributed between them, but speed doesn't goes up.


So, here I copy my config in case it has some obvious error:

Thanks !
Ivan

global
log 127.0.0.1local0
log 127.0.0.1local1 notice
maxconn 8192
user haproxy
group haproxy

defaults
logglobal
retries3
maxconn8192
contimeout5000
clitimeout5
srvtimeout5

listen  web-farm 0.0.0.0:80
mode http
option httpclose
option abortonclose
balance roundrobin
server small 192.168.1.100:80 weight 1 check inter 2000 rise 2 fall 5
server medium 192.168.1.101:80 weight 2 check inter 2000 rise 2 fall 5
server big 192.168.1.102:80 weight 8 check inter 2000 rise 2 fall 5