Performance of mod-roles-keycloak Testing Report 02.04.2026
Overview
Performance testing was conducted for the mod-roles-keycloak module following recent optimizations introduced in MODROLESKC-359. The goal was to validate the performance of role capability assignment operations and ensure they meet the expected time threshold.
This document presents the results of testing performed in prepared environments (selctls2 and segcon). The testing process focuses on key workflows related to role management, including assignment and unassignment of all capabilities and capability sets for a role. Testing activities were executed using a JMeter script simulating the defined workflows.
A comparative approach was used to evaluate performance before and after the applied optimizations, ensuring visibility into any improvements as well as potential functional issues.
The goals of testing:
Validate performance of capability and capability set assignment workflows
Measure execution time for assignment and unassignment operations
Compare system behavior before and after optimization
Ensure operations meet the defined performance target (under 1 minute)
Identify any functional or performance-related issues during execution
Ticket:PERF-1311: Test performance of mod-roles-keycloakClosed
Test runs
Test_1 , Test_2 and Test_3- test on selctls2 environment(befor fix) assgning\unassigmnet 267 capability sets to the role with 0 users assigned
Test_4 -test on selctls2 environment(befor fix) assgning\unassigmnet 267 capability sets to the role with 100 users assigned
Test_5, Test_6 and Test_7-test on asptc environment(after fix) assgning\unassigmnet 267 capability sets to the role with 0 users assigned
Summary
Performance testing covered assignment and unassignment of 267 capability sets under different conditions, including before and after the optimization, as well as with varying numbers of users assigned to the role.
Before the optimization (selctls2), the average execution time for both assignment and unassignment operations was approximately 40 seconds. Increasing the number of users associated with the role (from 0 to 100) did not have a measurable impact on performance, with response times remaining stable.
After the optimization (asptc), the average execution time decreased to approximately 22 seconds for the same operations.
Overall, the applied changes resulted in a significant performance improvement of approximately 45%, while maintaining consistent behavior regardless of the number of users linked to the role. All operations remained within the defined performance target of under 1 minute.
Results
Duration times table for Test_1, Test_2, Test_3, Test_4. Tests befor fix
Label | Response times (ms) | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
Test_1 | Test_2 | Test_3 | Test_4 | |||||||||
#Samples | 95th pct | Avg. | #Samples | 95th pct | Avg. | #Samples | 95th pct | Avg. | #Samples | 95th pct | Avg. | |
Unassign all capability sets | 23 | 45316 | 38228 | 20 | 44696 | 43512 | 22 | 40088 | 38852 | 23 | 43325 | 39053 |
Assign all capability sets | 24 | 46841 | 37833 | 21 | 45795 | 43954 | 22 | 43169 | 41252 | 23 | 43434 | 38785 |
Duration times table for Test_5, Test_6, Test_7. Tests after fix
Label | Response times (ms) | ||||||||
|---|---|---|---|---|---|---|---|---|---|
Test_5 | Test_6 | Test_7 | |||||||
#Samples | 95th pct | Avg. | #Samples | 95th pct | Avg. | #Samples | 95th pct | Avg. | |
Unassign all capability sets | 31 | 19653 | 19839 | 33 | 21218 | 19457 | 32 | 19749 | 18949 |
Assign all capability sets | 32 | 22583 | 20405 | 34 | 24267 | 21840 | 32 | 25142 | 21866 |
Service CPU Utilization for Test_2 and Test_4 (the tests 1-3 and 4-6 are identical, so only one test will be shown befor and after fix):
Service CPU Utilization Test_2
Service CPU Utilization Test_6
Appendix
Infrastructure for Tests 1-4
PTF -environment - selctls2
9 r7i.2xlarge EC2 instances located in US East (N. Virginia)us-east-1db.r7g.xlarge database instance
Option groups - default:aurora-postgresql-16;
DB instance parameter group - default.aurora-postgresql16;DB cluster parameter group - fse-aurora-postgresql16
OpenSearch - ptf-loc
Version Info- OpenSearch 2.19Service software version Info - OpenSearch_2_19_R20260218 (latest)
Data nodes
Availability Zone(s)- 2-AZ without standby
Instance type - r7g.xlarge.search
Number of data nodes - 4
Storage type - EBS
EBS volume type - General Purpose (SSD) - gp3
EBS volume size (GiB) - 500
Provisioned IOPS - 4500 IOPS
Provisioned Throughput (MiB/s) - 250 MiB/sMaster nodes
Instance type - m7g.large.search
Number of master nodes - 3MSK - ptf-loc-1
Total number of brokers - 6
Apache Kafka version 3.9.x
Metadata mode - KRaft
Cluster configuration name - fse-kafka-config
Revision - 31
Brokers Info:
Broker size - kafka.m7g.large
Brokers per zone - 3
Total number of brokers - 6
Storage Info:EBS storage volume per broker - 300 GiB
Cluster storage mode - EBS storage
Modules memory and CPU parameters: