Using ab to benchmark nginx: Connection reset by peer (54)

I recently updated to nginx 1.0.8 and tried to benchmark performance for
cached dynamic pages (initially served by a Django app via proxy_pass)
and for static pages. In both cases, nginx will not serve more than 3 or
4 requests (even without concurrent connections), so ab almost
immediately reports:

Benchmarking testsite.static (be patient)…apr_socket_recv: Connection
reset by peer (54)

It is only when choosing a maximum of 4 (or fewer) requests that ab
finishes successfully.

Why is that? I tried increasing the number of worker processes (no
luck), but I assume that nginx should be capable of serving more than 4
requests without tweaking any configuration variable. Could it be that I
accidentally triggered some sort of DOS protection mechanism?

Posted at Nginx Forum:

Hello!

On Fri, Nov 18, 2011 at 06:55:40AM -0500, janedenone wrote:

finishes successfully.

Why is that? I tried increasing the number of worker processes (no
luck), but I assume that nginx should be capable of serving more than 4
requests without tweaking any configuration variable. Could it be that I
accidentally triggered some sort of DOS protection mechanism?

By default there are no anti-DoS protections are activated in
nginx. If you’ve activated some - it may be the reason. Looking
into error may shed some light on the issue.

Alternatively, it may be some other limits, e.g. your firewall
ones.

Maxim D.

Thanks – there is no firewall (the test is run on my local machine),
and the error.log shows nothing. I increased the log level, only to see
notifications about exiting worker and cache processes.

Posted at Nginx Forum:

agentzh Wrote:

What kind of system are you in? ab is known to
have such issues in
certain Mac OS X boxes to my knowledge :slight_smile:

Well – Mac OS X. :slight_smile: Are these issues to the ab version that comes with
OS X, or are they related to the OS in general? In the former case, I’d
just recompile ab manually.

Thanks!

Posted at Nginx Forum:

agentzh Wrote:

-agentzh
Thanks a lot – I now use the -r flag, which makes ab proceed in spite
of failed requests.

  • jan

Posted at Nginx Forum:

On Fri, Nov 18, 2011 at 7:55 PM, janedenone [email protected]
wrote:

I recently updated to nginx 1.0.8 and tried to benchmark performance for
cached dynamic pages (initially served by a Django app via proxy_pass)
and for static pages. In both cases, nginx will not serve more than 3 or
4 requests (even without concurrent connections), so ab almost
immediately reports:

Benchmarking testsite.static (be patient)…apr_socket_recv: Connection
reset by peer (54)

What kind of system are you in? ab is known to have such issues in
certain Mac OS X boxes to my knowledge :slight_smile:

Regards,
-agentzh

On Fri, Nov 18, 2011 at 11:36 PM, janedenone [email protected]
wrote:

agentzh Wrote:

What kind of system are you in? ab is known to
have such issues in
certain Mac OS X boxes to my knowledge :slight_smile:

Well Mac OS X. :slight_smile: Are these issues to the ab version that comes with
OS X, or are they related to the OS in general? In the former case, I’d
just recompile ab manually.

On Mac OS X 10.6, I have to use “127.0.0.1” instead of “localhost”
while running the ab command, or I’ll get exactly the same error
message.

And for 10.7 (Lion), people say they have to apply a patch to ab to get
it work.

Hope this helps,
-agentzh