Load testing 51Degrees with DotNetNuke CMS
Introduction
The purpose of testing is to investigate the impact of 51Degrees device detection and image optimisation modules on the performance of the DotNetNuke (DNN) Content Management System. The DNN platform was tested with high user page loads. DNN was chosen as a representative .NET platform for testing 51Degrees .NET API.
This article providea a table of expected memory consumption for common configurations.
DNN
The Community version of DNN labeled as Alpha 8.0.0.0 obtained from the development branch on the 13th of July 2015. The 51Degrees module in this DNN version was locally patched (in a separate git branch of our fork) with the latest V3.2 changes. The 51Degrees Enterprise data file, being the largest file, was used in all tests.
Server
Microsoft Azure A1 instance was used with a SQL server database and CMS platform running on the same machine. This configuration is the smallest dedicated CPU configuration available. This configuration eliminated the latency associated with the distributed servers.
Test parameters
The performance tests were carried out using LoadStorm tool with identical parameters for each test. Performance monitoring running on the same server was used to capture CPU and Memory usage. Each test had the following parameters:
- Based on a HAR (HTTP Archive) file derived from Chrome developer tools, the behaviour pattern is chosen to start from the home page, visit pages 2, 3 and 4 and then visit the image-heavy page (page 1) and finally move to page 5.
- Each test started with 10 concurrent users.
- Total test duration was 15 minutes.
- Each test ended with 100 concurrent users. The level of 100 concurrent users was maintained for the last 8 minutes of each test.
- 51Degrees was used in the File (aka Stream) mode which is the recommended configuration for a mid-range web site running on multiple servers.
Results
51Degrees module fully disabled.
Total Requests: | 28,961 |
Peak Response Time(ms): | 7,213 |
Average Response Time(ms): | 294 |
Peak Requests Per Second: | 48.38 |
Average Requests Per Second: | 30.17 |
51Degrees module enabled but image optimisation not used.
Total Requests: | 29,091 |
Peak Response Time(ms): | 2,885 |
Average Response Time(ms): | 292 |
Peak Requests Per Second: | 48.58 |
Average Requests Per Second: | 32.32 |
51Degrees module enabled with image optimiser in use and images resized to 800 pixels.
Total Requests: | 29,390 |
Peak Response Time(ms): | 3,303 |
Average Response Time(ms): | 291 |
Peak Requests Per Second: | 48.28 |
Average Requests Per Second: | 32.66 |
Memory and guidance
Other base line tests were performed on the same configuration with different 51Degrees data files in both stream and memory mode to provide guidance to those evaluating memory requirements per instance of 51Degrees device detection.
Expected memory consumption
File (Stream) mode | Memory mode | |
---|---|---|
Lite | 10 – 20Mb | 35 – 45Mb |
Premium | 10 – 30Mb | 80 – 90 Mb |
Enterprise | 10 – 50Mb | 130 – 150Mb |
Conclusion
Using 51Degrees device detection module on the test DotNetNuke Azure virtual machine did not produce any server errors and had no effect on the response times. The additional memory consumed in File (Stream) mode is likely to be acceptable in a memory constrained environment, and where an environment supporting higher volumes requires faster detection Memory Mode also shows consistent memory usage.
Test results (including memory dump files) are available on request.
External resources:
Article image "Going nowhere fast" by Nathan E Photography.