28

Sep

Filed in Django, iBegin |

So we’ve been pushing live some changes the last few days over at iBegin. The biggest one is our brand new Django-powered website. The reason I bring this up, is to show all the haters out there, that Django really can scale well if you’ve designed your architecture properly from the get-go.

We haven’t been able to peak yet, as we’re still doing some configuration changes and changes to the website itself, but so far the numbers are VERY impressive. The server is shared between all of our websites, which are both PHP and Python (Django) powered. It also hosts the memcached instance, and the static files. In fact, the only thing which is not hosted on the server, is the database.

Anyways, here’s what we’ve been able to achieve off some initial siege tests. Keep in mind, this is limited to a single (somewhat randomly chosen) URL, and it varies a little bit depending on which page you’re hitting (file sizes, cache expirations, etc.). The average we’re seeing right now is around 200 req/s consistently across the website with siege tests, and our top numbers are around 500 req/s.

ifting the server siege...      done.
Transactions:               23305 hits
Availability:              100.00 %
Elapsed time:               43.32 secs
Data transferred:          434.98 MB
Response time:                0.05 secs
Transaction rate:          537.97 trans/sec
Throughput:               10.04 MB/sec
Concurrency:               26.68
Successful transactions:       23305
Failed transactions:               0
Longest transaction:            0.69
Shortest transaction:            0.00

I will post more results once we’ve tweaked some of the configuration settings, and I’ve created a proper URL configuration for siege to target.

9 Responses to "Django Scaling Numbers for iBegin"

Subscribe to this topic with RSS or get the Trackback URL
snirp (Sep 28th):

The following returns 404:
http://www.ibegin.com/philosophy/

snirp (Sep 28th):

Oh well, so are some more URL’s. Seem to have reached you at early beta.

David (Sep 28th):

Ya we launched Sunday — didn’t get those random pages up yet (they’re just intended to be Flatpages, so I’m leaving it up to someone else :P)

andrey (Sep 29th):

Wow, 500 req/sec on a single server?!

Have you made any special tweakings to Django or just used it in a “standard” way? We are building a project with Django and it would be nice to know how far we can get without any tricky optimizations.

Tomek (Sep 29th):

This: http://ibegin.com/search/?q=lawyer&w=chicago produces proud I.S.E. 500.

David (Sep 29th):

This is single server, that’s fairly mediocre in hardware. The only modifications to Django is our composite primary key support.

Thanks Tomek, sphinx (search) was down. We’re still having some issues with error emails and sphinx didn’t have an init.d script setup yet.

zgoda (Sep 30th):

Any chance of getting those “proper architecture design” tips?

shogunmike (Oct 1st):

Hi David,

I was just wondering what software you used to do the siege testing with? Httperf or Apache Benchmark, for instance?

Thanks,

Mike

David (Oct 1st):

It was just a quick test using the “siege” application available on unix-based systems.

Leave A Reply

 Username (*required)

 Email Address (*private)

 Website (*optional)

Note: Comments moderation may be active so there is no need to resubmit your comment.