celluloid / reel

UNMAINTAINED: See celluloid/celluloid#779 - Celluloid::IO-powered web server
https://celluloid.io
MIT License
596 stars 87 forks source link

Connection Reset or Connection Timeout when benchmarking with AB #76

Closed multiplegeorges closed 11 years ago

multiplegeorges commented 11 years ago

In my initial testing of Reel, I used the example subclasses server to see what kind of reqs/sec I could do on my dev machine.

Here's the Reel server: https://gist.github.com/multiplegeorges/4fe3b4ed0f30b298bdd4

I am testing with ab like so:

ab -n 10000 -c 10 http://localhost:3000/

and the set of connections rarely finishes. It will often hit 6000+ and all remaining connections will time out.

But, I am also seeing connection reset errors very often: https://gist.github.com/multiplegeorges/285a3460d0cba9c78f86

Note: nothing changed between those ab runs. I left the Reel server running and just tried again.

Rubies tested: jruby 1.7.4, mri 1.9.3.

What am I missing here?

tarcieri commented 11 years ago

Are you doing this on a Mac? ApacheBench on Macs is notoriously bad and broken.

I'd suggest using a tool like httperf or wrk.

In addition, if you're still having issues, you might try benchmarking against Reel's "Hello, world!" example.

Finally, we recently merged a number of pipelining changes into master which might be causing problems if you're using master.

multiplegeorges commented 11 years ago

Yes, I'm on OSX. It was ApacheBench. I tried it with httperf and Reel held up very well. :+1:

Thanks for the quick reply.