Skip to content

Instantly share code, notes, and snippets.

@omindu
Created November 6, 2019 05:00
Show Gist options
  • Save omindu/5cffb9119ca9aa4b4582a85a295c9694 to your computer and use it in GitHub Desktop.
Save omindu/5cffb9119ca9aa4b4582a85a295c9694 to your computer and use it in GitHub Desktop.

IAM Performance Test Results

During each release, we execute various automated performance test scenarios and publish the results.

Test Scenarios Description
Auth Code Grant Redirect With Consent Obtain an access token using the OAuth 2.0 authorization code grant type.
SAML2 SSO Redirect Binding Obtain a SAML 2 assertion response using redirect binding.

Our test client is Apache JMeter. We test each scenario for a fixed duration of time and split the test results into warm-up and measurement parts and use the measurement part to compute the performance metrics. For this particular instance, the duration of each test is 15 minutes and the warm-up period is 5 minutes.

We run the performance tests under different numbers of concurrent users and heap sizes to gain a better understanding on how the server reacts to different loads.

The main performance metrics:

  1. Throughput: The number of requests that the WSO2 Identity Server processes during a specific time interval (e.g. per second).
  2. Response Time: The end-to-end latency for a given operation of the WSO2 Identity Server. The complete distribution of response times was recorded.

In addition to the above metrics, we measure the load average and several memory-related metrics.

The following are the test parameters.

Test Parameter Description Values
Scenario Name The name of the test scenario. Refer to the above table.
Heap Size The amount of memory allocated to the application 2G
Concurrent Users The number of users accessing the application at the same time. 50, 100, 150, 300, 500
Tenants The number of tenants active druing the test.
IS Instance Type The AWS instance type used to run the Identity Server. c5.xlarge

The following are the measurements collected from each performance test conducted for a given combination of test parameters.

Measurement Description
Error % Percentage of requests with errors
Average Response Time (ms) The average response time of a set of results
Standard Deviation of Response Time (ms) The Standard Deviation of the response time.
99th Percentile of Response Time (ms) 99% of the requests took no more than this time. The remaining samples took at least as long as this
Throughput (Requests/sec) The throughput measured in requests per second.
Average Memory Footprint After Full GC (M) The average memory consumed by the application after a full garbage collection event.

The following is the summary of performance test results collected for the measurement period.

Scenario Name Concurrent Users Tenants Label Error % Throughput (Requests/sec) Average Response Time (ms) Standard Deviation of Response Time (ms) 99th Percentile of Response Time (ms) WSO2 Identity Server GC Throughput (%)
Auth Code Grant Redirect With Consent 50 1 Authorize Request 0 133.22 79.58 46.49 217 98.24
Auth Code Grant Redirect With Consent 50 1 Common Auth Login HTTP Request 0 133.2 57.37 28.25 140 98.24
Auth Code Grant Redirect With Consent 50 1 Get access token 0 133.22 183.25 50.36 323 98.24
Auth Code Grant Redirect With Consent 50 1 Send request to authorize end poiont 0 133.18 54.27 34.91 158 98.24
Auth Code Grant Redirect With Consent 100 1 Authorize Request 0 142.02 137.06 58 295 97.99
Auth Code Grant Redirect With Consent 100 1 Common Auth Login HTTP Request 0 141.96 118.11 49.31 269 97.99
Auth Code Grant Redirect With Consent 100 1 Get access token 0 142 355.8 85.87 579 97.99
Auth Code Grant Redirect With Consent 100 1 Send request to authorize end poiont 0 142 92.55 47.27 243 97.99
Auth Code Grant Redirect With Consent 150 1 Authorize Request 0 145.6 182.45 68.79 393 97.85
Auth Code Grant Redirect With Consent 150 1 Common Auth Login HTTP Request 0 145.68 178.02 70.65 387 97.85
Auth Code Grant Redirect With Consent 150 1 Get access token 0 145.54 529.76 119.63 815 97.85
Auth Code Grant Redirect With Consent 150 1 Send request to authorize end poiont 0 145.68 139.42 65.95 367 97.85
Auth Code Grant Redirect With Consent 300 1 Authorize Request 0 136.57 396.64 179.57 963 97.75
Auth Code Grant Redirect With Consent 300 1 Common Auth Login HTTP Request 0 136.5 428.29 235.41 1047 97.75
Auth Code Grant Redirect With Consent 300 1 Get access token 0 136.48 1062.94 312.13 1831 97.75
Auth Code Grant Redirect With Consent 300 1 Send request to authorize end poiont 0 136.65 307.54 203.02 955 97.75
Auth Code Grant Redirect With Consent 500 1 Authorize Request 0 136.33 718.36 330.32 1767 97.32
Auth Code Grant Redirect With Consent 500 1 Common Auth Login HTTP Request 0 136.45 675.91 347.12 1631 97.32
Auth Code Grant Redirect With Consent 500 1 Get access token 0 136.2 1683.04 561.99 3151 97.32
Auth Code Grant Redirect With Consent 500 1 Send request to authorize end poiont 0 136.34 588.08 379.86 1799 97.32
SAML2 SSO Redirect Binding 50 1 Identity Provider Login 0 184.59 211.62 66.45 395 97.13
SAML2 SSO Redirect Binding 50 1 Initial SAML Request 0 184.63 57.96 37.1 172 97.13
SAML2 SSO Redirect Binding 100 1 Identity Provider Login 0 187.28 406.03 131.98 775 96.98
SAML2 SSO Redirect Binding 100 1 Initial SAML Request 0 187.22 126.37 93.11 431 96.98
SAML2 SSO Redirect Binding 150 1 Identity Provider Login 0 189.68 598.57 209.21 1159 96.84
SAML2 SSO Redirect Binding 150 1 Initial SAML Request 0 189.77 190.66 157.91 727 96.84
SAML2 SSO Redirect Binding 300 1 Identity Provider Login 0 179.11 1300.06 462.5 2575 96.68
SAML2 SSO Redirect Binding 300 1 Initial SAML Request 0 179.05 372.66 354.47 1663 96.68
SAML2 SSO Redirect Binding 500 1 Identity Provider Login 0 185.28 2082.26 730.22 4015 96.18
SAML2 SSO Redirect Binding 500 1 Initial SAML Request 0 185.36 609.86 580.19 2703 96.18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment