Thanks John. We did re-run our tests with this option enabled, but it had no effect. Curl was keeping the connection alive before, just all the way to the web server. This option just changed the test so it was only staying connected to haproxy. We definitely like this option better as we get our custom headers from haproxy for every request now, but unfortunately it didn't make the performance difference go away.
David -----Original Message----- From: John Marrett [mailto:jo...@zioncluster.ca] Sent: Saturday, November 12, 2011 6:24 AM To: David Prothero Cc: haproxy@formilux.org Subject: Re: HAProxy performance issues David, I do not believe that your configuration correctly implements all of the options required for keep-alive. I suspect that your clients are forced to initiate a new connection for each page element. On an SSL connection this will have an even more substantial impact. You can take a look at this blog posting, as well as the mailing list archives http://blog.killtheradio.net/technology/haproxys-keep-alive-functionality-and-how-it-can-speed-up-your-site/ I believe you are missing at least: option http-server-close While the page refers to option httpclose my reading of the configuration guide suggests that this option may close client facing connections as well. You will not have keepalive between haproxy and the server, which will impact performance if there is substantial latency between haproxy and the backend servers. You should use network captures to ensure that proper keepalive is maintained between the client and the haproxy machine. > timeout client 50s This is also an extremely long timeout value, ordinarily you will only want to serve the elements for a given page in a single keep-alive session. I would suggest perhaps 5 seconds. -JohnF