2

I just started working with node.js and doing some experimental load testing with ab is returning an error at around 30 requests or so.

I've found other pages showing a lot better concurrency numbers than I am such as: http://zgadzaj.com/benchmarking-nodejs-basic-performance-tests-against-apache-php

Are there some critical server configuration settings that need done to achieve those numbers?

I've watched memory on top and I still see a decent amount of free memory while running ab, watched mongostat as well and not seeing anything that looks suspicious.

The command I'm running, and the error is:

ab -k -n 100 -c 10 postrockandbeyond.com/
This is ApacheBench, Version 2.0.41-dev <$Revision: 1.121.2.12 $> apache-2.0
Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright (c) 2006 The Apache Software Foundation, http://www.apache.org/

Benchmarking postrockandbeyond.com (be patient)...apr_poll: The timeout specified has   expired (70007)
Total of 32 requests completed

Does anyone have any suggestions on things I should look in to that may be causing this? I'm running it on osx lion, but have also run the same command on the server with the same results.

EDIT: I eventually solved this issue. I was using a TTAPI, which was connecting to turntable.fm through websockets. On the homepage, I was connecting on every request. So what was happening was that after a certain number of connections, everything would fall apart. If you're running into the same issue, check out whether you are hitting external services each request.

Scott
  • 121
  • 1
  • 4

1 Answers1

3

According to this blog post, this is because apache bench makes HTTP/1.0 requests, which cause node to close the connection, as of node 0.6+.

I'm not sure why; it seems kind of like a node bug.

Anyways, the short answer is to use something else. I've been using httperf which seems better anyways.

Cole
  • 131
  • 4