The Subsection Gating feature adds additional relational database queries to retrieve milestones data during the page rendering cycle in both LMS and Studio. The purpose of this load testing is the verify that these additional queries do not significantly impact the performance of LMS page rendering under load.
Activation of the feature is controlled by an advanced setting on the course, "Enable Subsection Gating". Load tests were run under three separate conditions:
Each condition was tested with a simulated average production load and a simulated 1.5x peak production load. Testing was performed in the matasano environment with 3 app server instances. Assuming that average load is ~16k rpm in production and the production environment employs 16 app server, each app server should handle ~1000 rpm under average load. 1.5x peak production load is assumed to be ~35 rpm, thus in the testing environment the 1.5x tests generated ~6600 rpm.
2 slaves
Number of users to simulate: 600
Hatch rate: 10
~3k rpm
Condition | Name | 50% | 66% | 75% | 80% | 90% | 95% | 98% | 99% | 100% |
---|---|---|---|---|---|---|---|---|---|---|
Master | GET courseware:index | 670 | 910 | 980 | 1000 | 1100 | 1100 | 1200 | 1300 | 2090 |
Subsection Gating Disabled | GET courseware:index | 650 | 890 | 960 | 990 | 1100 | 1100 | 1200 | 1200 | 2603 |
Subsection Gating Enabled | GET courseware:index | 670 | 930 | 1000 | 1000 | 1100 | 1200 | 1200 | 1300 | 3041 |
2 slaves
Number of users to simulate: 1250
Hatch rate: 10
~6.6k rpm
Condition | Name | 50% | 66% | 75% | 80% | 90% | 95% | 98% | 99% | 100% |
---|---|---|---|---|---|---|---|---|---|---|
Master | GET courseware:index | 890 | 1100 | 1200 | 1300 | 1700 | 1900 | 2200 | 2400 | 7995 |
Subsection Gating Disabled | GET courseware:index | 720 | 970 | 1100 | 1100 | 1300 | 1400 | 1600 | 1700 | 7634 |
Subsection Gating Enabled | GET courseware:index | 730 | 990 | 1100 | 1100 | 1300 | 1500 | 1600 | 1700 | 7735 |