I can confirm the same results. I believe this has something to do with ab using HTTP/1.0. Pound closes any non HTTP/1.1 client connections after servicing them.

On 9/5/2011 7:04 AM, Erik Hensema / HostingXS wrote:
Dear Pound users,


We have made the following setup:

pound ->  2 * nginx caching reverse proxy ->  application servers

This seems to work well. However, I've got trouble benchmarking this setup.
I'm trying to use ApacheBench to get some data on the maximum number of
requests per second we can handle.

The first test is a very simple setup: I have created a webserver which serves
static files. The files are requested through the loadbalancer and are cached
by nginx. So, no actual hits are propagated to the webserver, except for the
initial fetch of the static file (a small image, in this case).

When I'm benchmarking with KeepAlive off, everything works as expected:

/usr/sbin/ab2 -r -c 10 -n 2500 http://our.host/top.jpg

Results in a nice 500 hits/sec, which isn't very good, but on our old test
hardware it's not bad either.

When I try to enable http keepalive, pound starts failing badly:

/usr/sbin/ab2 -r -c 10 -k -n 2500 http://our.host/top.jpg

Complete requests:      2500
Failed requests:        1255
    (Connect: 0, Receive: 0, Length: 1250, Exceptions: 5)
Write errors:           0
Keep-Alive requests:    1250

So 1250 KeepAlive requests, 1250 fails. Pound logs 1255 hits, and some errors:

Sep  5 12:59:29 proxy1 pound: NULL get_thr_arg
Sep  5 12:59:29 proxy1 pound: (7f367ac87710) error copy server cont:
Connection reset by peer

If I don't use the -r flag on apachebench (Don't exit on socket receive
errors.) the bench doesn't even complete.

Any clue on how to investigate this further?

Reply via email to