performance testing and 503 errors

From: Martin Pegman <>
Date: Fri, 29 Aug 2008 12:11:25 +0100

I am having what I'm sure is a configuration issue with my first installation of haproxy and I would appreciate any pointers you may be able to give me.

I originally had 2 apache2 servers running a php application behind a basic proxy that needs to access other internet sites for some content so the sessions are quite long. I have used JMeter to get a throughput of 3 responses a sec and can handle 100+ concurrent connections.

I have replaced this with a haproxy server in front of 5 apache servers (all different hosts) using the config below.

However now when I run the same JMeter tests I almost immediately receive error 503 there is no server to handle your request errors.! And by immediately I mean before 100 urls have been tested.

The apache servers never even appear to show any load so I cannot see why ha proxy would assume they cannot handle more connections.

I'm running on Ubuntu 8.04 kernel with HA-Proxy version 1.3.12 2007/06/17.

I have read the available documentation and I cannot see how to resolve the issue. Any pointers or assistance would be greatly appreciated.

Martin P

> global
> #log local0
> log local0 debug
> log local1 debug
> #log localhost local0 debug
> maxconn 50096
> #debug
> #quiet
> user haproxy
> group haproxy
> daemon
> nbproc 1
> defaults
> mode http
> clitimeout 150000 # maximum inactivity time on the client side
> srvtimeout 500000 # maximum inactivity time on the server side
> contimeout 500000 # maximum time to wait for a connection attempt to a server to succeed
> option httpclose # disable keepalive (HAProxy does not yet support the HTTP keep-alive mode)
> option abortonclose # enable early dropping of aborted requests from pending queue
> option httpchk # enable HTTP protocol to check on servers health
> option forwardfor # enable insert of X-Forwarded-For headers
> option clitcpka
> #stats
> stats enable # enable web-stats at /haproxy?stats
> stats auth admin:pass # force HTTP Auth to view stats
> ##Instant mobiliser
> listen im_a_proxy
> balance roundrobin
> option httplog
> option dontlognull
> option abortonclose
> log local0 debug
> server im1 ip-10-250-9-238.ec2.internal weight 1 check
> server im2 ip-10-250-9-219.ec2.internal weight 1 check
> server im3 ip-10-251-69-220.ec2.internal weight 1 check

	  server im4	  ip-10-250-8-44.ec2.internal weight 1 check
	  server im5	  ip-10-251-69-188.ec2.internal weight 1 check
Received on 2008/08/29 13:11

This archive was generated by hypermail 2.2.0 : 2008/08/29 13:15 CEST