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 <[email protected]>:
> 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    50000
>    srvtimeout    50000
>
> 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
>
>
>

Reply via email to