Load tests

From NDjango
Jump to: navigation, search

Load testing of MVC + Django web application


4 simple web applications (ASP.Net, ASP.MVC, MVC + Django, Bistro+Django) were load tested. Each of them consists of 2 pages (index and about) and all of them are as similar to each other as it was possible to do. See branches IfFor ( if and for tags were added to template ) and Vars ( large amount variables was added to make application more complex) for view's and controller's modifications.

These application can be found at :





The main aim was to compare perfomance and try to find bottlenecks in NDjango. While some changes were made, application was load tested to analyze how those changes impacted the perfomance under stress.


JMeter[1] was used as a load-testing tool. Load-tests ran locally (it means that we had the agent and controller on the same machine) while having remote web-server under-stress.

Controller's machine configuration:

  • OS Windows Vista Ultimate SP2 32 bit
  • Processor Intel(R) Core2 Duo CPU (3 GHz,3 GHz)
  • RAM 2GB

Web-server's machine coniguration:

  • OS Windows Server 2008 Enterprise SP2 64 bit
  • Processor Intel (R) Core2 Quad CPU (2,66 Ghz,2,66GHz)
  • RAM 4GB

Test configurations:

  • 150 virtual users (threads), 100 loops (each consists of 2 requests: requests to home and about pages)
  • 150 virtual users (threads), 1000 loops (each consists of 2 requests: requests to home and about pages)


  • Compare NDjango with other technologies
Application Server CPU Total requests Avg response time(ms) Throughput(req/sec) Deviation(ms) Contention rate
ASP.Net 11 300000 184 805 124 0
ASP.MVC 40 300000 233 642 185 40
MVC+Django 30 300000 185 805 295 13 (230*)

In MVC+Django app contention rate depends on templates' updates from disk (if updates are enabled contention rate is greater) File:Results.jpg For more info see File:LoadTest review.zip

  • Regression tests' results


Analysis and conclusions

The avg page response time and throughput in Ndjango (even if you use template inheritance) are similar to these values of ASP.Net application. And sometimes the statistics of NDjango application is better (less avg response time and larger throughput). But the avg page response time of ASP.MVC pages is larger and therefore throughput is less! This situation reproduces each time I run load tests. NDjango release seems to be more stable under stress!