Good morning,

Much love for haproxy and many thanks to all who have worked on and
contributed to it.  We have been using it for several years without issue.
However, we have been doing load testing lately and there appears to be a
bottleneck.  It may not even have to do with haproxy (i dont think it does)
but i need to double check anyways just to be thorough and cover all our
bases.

Hardware: VM running on ESXi, it has 2gigs RAM allocated to it, and 2 CPU's
GuestOS: CentOS 5
Haproxy version: 1.4.8 (however, we just upgraded to 1.4.19 last night)

Problem: "second_proxy" is getting hammered by a load test, site
performance decreases to the point where the site is barely usable and the
majority of pages time out.  however, go to a different site that is in the
same haproxy config listening on "http_proxy" going to the same backend
server, and the site comes up fine and fast.  it seems like something is
being throttled or queued somewhere.  its possible that it could be an
issue behind haproxy on the app servers, but i just want to make sure there
is nothing i need to tweak in my config.

Here is a snapshot of the haproxy stats page for the slow pool
"second_proxy" http://tinypic.com/r/15887qf/5

here is my haproxy.cfg

global
        maxconn     8096
        daemon
        nbproc      1
        stats socket /var/run/haproxy.stat

defaults
        clitimeout  600000
        srvtimeout  600000
        contimeout  9000
        option      httpclose
        log 127.0.0.1 local0
        log 127.0.0.1 local1 notice

listen  http_proxy 11.10.15.108:80
        mode http
        acl acl_www18 url_sub www18dir #these are here so we can test an
individual server
        acl acl_www19 url_sub www19dir
        acl acl_wwwkj3 url_sub wwwkj3dir
        acl acl_wwwkj5 url_sub wwwkj5dir
        use_backend www18 if acl_www18
        use_backend www19 if acl_www19
        use_backend wwwkj3 if acl_wwwkj3
        use_backend wwwkj5 if acl_wwwkj5
        cookie EWNSERVERID insert
        balance leastconn
        option httpchk HEAD /check.txt HTTP/1.0
        option forwardfor
        server EWN-www18 11.10.15.18:80 cookie server18 weight 10 maxconn
2000 check port 8081
        server EWN-www19 11.10.15.19:80 cookie server19 weight 10 maxconn
2000 check port 8081
        server EWN-wwwkj3 11.10.15.191:80 cookie serverkj3 weight 10
maxconn 2000 check port 8081
        server EWN-wwwkj5 11.10.15.194:80 cookie serverkj5 weight 10
maxconn 2000 check port 8081
        stats enable
        stats auth (user):(pass)

listen  second_proxy 11.10.15.108:8181
        mode http
        acl acl_www18 url_sub www18dir #these are here so we can test an
individual server
        acl acl_www19 url_sub www19dir
        acl acl_wwwkj3 url_sub wwwkj3dir
        acl acl_wwwkj4 url_sub wwwkj4dir
        acl acl_wwwkj5 url_sub wwwkj5dir
        acl acl_wwwkj6 url_sub wwwkj6dir
        acl acl_wwwkj7 url_sub wwwkj7dir
        acl acl_wwwkj8 url_sub wwwkj8dir
        use_backend www18 if acl_www18
        use_backend www19 if acl_www19
        use_backend wwwkj3 if acl_wwwkj3
        use_backend wwwkj4 if acl_wwwkj4
        use_backend wwwkj5 if acl_wwwkj5
        use_backend wwwkj6 if acl_wwwkj6
        use_backend wwwkj7 if acl_wwwkj7
        use_backend wwwkj8 if acl_wwwkj8
        cookie EWNSERVERID insert
        balance leastconn
        option httpchk HEAD /check.txt HTTP/1.0
        option forwardfor
        server EWN-www18 11.10.15.18:80 cookie server18 weight 10 maxconn
2000 check port 8081
        server EWN-www19 11.10.15.19:80 cookie server19 weight 10 maxconn
2000 check port 8081
        server EWN-wwwkj3 11.10.15.191:80 cookie serverkj3 weight 10
maxconn 2000 check port 8081
        server EWN-wwwkj4 11.10.15.196:80 cookie serverkj4 weight 10
maxconn 2000 check port 8081
        server EWN-wwwkj5 11.10.15.194:80 cookie serverkj5 weight 10
maxconn 2000 check port 8081
        server EWN-wwwkj6 11.10.15.197:80 cookie serverkj6 weight 10
maxconn 2000 check port 8081
        server EWN-wwwkj7 11.10.15.192:80 cookie serverkj7 weight 10
maxconn 2000 check port 8081
        server EWN-wwwkj8 11.10.15.193:80 cookie serverkj8 weight 10
maxconn 2000 check port 8081
        stats enable
        stats auth (user):(pass)

Backends then follow but i have omitted as those are only used when we are
trying to test an individual server

Reply via email to