Re: HAProxy 1.4.8 Tunning for load balancing 3 servers
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
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
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