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



Reply via email to