Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm having my first attempt at stress testing a simple django web app running from gunicorn and nginx which I’ve put on a small 256MB Rackspace Cloud server.

Using httperf, I increase the number of connections per second until I start getting errors e.g.

httperf --hog --server=localhost --uri=/myapp --timeout=10 --num-conns=2500 --rate=25

I find that for a simple almost static page from django I can get about 35 req/sec before errors start being thrown.

For a more dynamic page which requires a database lookup and some more processing, I can get about 25 req/sec.

Originally I was only using 1 gunicorn worker, but increasing to 4 workers (I think my cloud server has 4 cores) didn’t seem to make any difference (it still starts throwing errors above 25 req/sec).

Do these results sound about as expected considering this is running on such a small (256MB) server?

Also, are there any changes I could make to improve the throughput?

share|improve this question

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Browse other questions tagged or ask your own question.