51DegreesTM

Memory and Performance Impact of 51Degrees

51Degrees Products

7/21/2015 1:30 PM

Performance DotNetNuke Development

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.

dnn_test_51_disabled
Printscreen of LoadStorm test results with 51Degrees DNN module 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
Key metrics when 51Degrees fully disabled

51Degrees module enabled but image optimisation not used.

dnn_test_51_enabled_no_image_optimiser
Printscreen of LoadStorm test results with 51Degrees DNN module enabled but image optimiser 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
Key metrics when 51Degrees enabled. Image optimiser not used.

51Degrees module enabled with image optimiser in use and images resized to 800 pixels.

dnn_test_51_enabled_yes_image_optimiser
Printscreen of LoadStorm test results with 51Degrees DNN module enabled and image optimiser configured to resize the images 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
Key metrics when 51Degrees enabled. Image optimiser set to resize images to 800 pixels in width.

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
Table shows the expected memory consumption for both File (Stream) and Memory modes of operation using Lite, Premium and Enterprise data files. The figures are for individual application pool worker process.

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.