[Twisted-Python] Speed of twisted on Amazon EC2

Tom van Neerijnen twisted at tomvn.com
Sun Apr 21 04:58:06 MDT 2013


Hi all

I recently wrote a hello world HTTP app in Twisted, Cyclone, node, Go and
Scala on the Play framework, and used a combination of ab and gattling to
see how fast each was on an m1.small instance on Amazon EC2. I also tested
it on bare metal (my laptop:)) but I'll get to that later.

The code I used for twisted was the web server code sample from the front
page of twistedmatrix.com with the numberRequests increment dropped and a
simple "Hello World!" returned instead.
For cyclone I used the sample code from the cyclone docs with the same
string being returned.
Node was the sample from their front page.
Play and Go I've never worked with before so those were copy pastes from
various examples on their pages but again same URI and return string as the
other frameworks.

>From one m1.small to another, Go, Play and node were handling about 1.5k
requests per second while Twisted and Cyclone were only handling 400-500
requests per second.

On loopback from the same m1.small I suspect I was starting to load test
the load testers more than the apps but locally all the frameworks were
performing similarly.

Load testing from another machine to my laptop I was seeing far better
performance from Twisted and Cyclone, both doing closer to 2k requests per
second. The other frameworks were only a little quicker but again, there's
a chance the machine running the load tests was the bottle neck.

These tests were very unscientifically done but I still wasn't expecting to
see such a big difference between specifically node and Twisted.  500
req/sec is plenty quick for 90% of what I do and of course I know there's
so much more to an application than returning hello world but I was
wondering if I was missing some trick to speed Twisted up to get close to
the others on EC2.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: </pipermail/twisted-python/attachments/20130421/0e7e9eb6/attachment.html>


More information about the Twisted-Python mailing list