Check-in-check-out Test Report (Sunflower) [ECS]
1 Overview
2 Summary
4 Results
4.1 Comparisons
4.2 Cluster Resources Utilization
4.2.1 CPU Utilization
4.2.2 Memory Consumption
4.2.3 RDS CPU Utilization
4.2.4 RDS Database Connections
4.2.5 Database load
5 Appendix
5.1 Infrastructure
Overview
Regression testing of Check-In/Check-Out (CI/CO) fixed load tests on okapi based environment in Ramsons ECS release.
Test on central tenant won’t happen as on ptf environment we have restored DB from Bugfest and central consortia tenant doesn’t have items. We’ll proceed testing on member tenants
The purposes of CI/CO testing:
To test how different load from CI/CO flow affect the system
To define response times of Check-In and Check-Out
To define the response times for requests that take longer than 100 milliseconds
To find any trends for resource utilization and recommend improvements
To check how system behaves over extended period during longevity test
Compare results (current and previous)
The current ticket: PERF-1125 - [Sunflower] [ECS] CI/CO
The previous results report: [ECS] Check-in-check-out Test Report (Ramsons)
Summary
Common results:
Check-in and check-out flows degraded as the number of users increased. However, check-in in Sunflower performed slightly better than Ramsons in general, while check-out consistently showed worse results. Compared to Ramsons, resource utilization is higher in Sunflower.
Tests #1, #2, #3, #4
Response times in average:
Check-in - minimum 445 ms with 20 vUsers and maximum 847 ms with 75 vUsers.
Check-out - minimum 1122 ms with 8 vUsers and maximum 2825 ms with 75 vUsers.
Test #5
Response times in average:
Check-in - 517 ms with 30 vUsers
Check-out - 1699 ms with 30 vUsers.
Resources
CPU utilization
CPU utilization depends on number of concurrent virtual users and increasing accordingly. Top used modules: mod-users-keycloak, mod-pubsub, mod-inn-reach-b, mod-inventory-storage, mod-circulation, mod-users,
Nearly during all tests mod-users-keycloak consumed most CPU.
Memory consumption
Memory consumption of mod-pubsub module grow when test users increased.
Mod-dcb and mgr-applications were highest at 80%.
Top 5 modules, consumption at % in 75 vUsers test: mgr-application - 82%, mod-dcb-b - 74%, mod-keycloak-b - 69%, mod-scheduler-b - 69%, mod-finance-b - 68%
RDS CPU utilization average
8 vUsers - 25%, 20 vUsers - 54%, 30 vUsers - 73%, 75 vUsers - 99% During longevity test CPU was 80%.
CPU (User) usage by broker
8 vUsers - 40%, 20 vUsers - 42%, 30 vUsers - 43%, 75 vUsers - 28%. During Longevity test - 3 brokers - above 30%, other broker - 26%.
Test Runs
The following table contains tests configuration information
Test # | vUsers | Ramp-up, sec | Duration, sec |
1 | 8 | 80 | 2700 |
2 | 20 | 200 | 2700 |
3 | 30 | 300 | 2700 |
4 | 75 | 750 | 2700 |
5 | 30 | 300 | 86400 |
Results
Response time
The table contains results of Check-in, Check-out tests in Sunflower release.
Test #1, #2, #3, #4
| 8 vUsers (test #1) | 20 vUsers (test #2) | 30 vUsers (test #3) | 75 vUsers (test #4) | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Requests | Response Times (ms) | Response Times (ms) | Response Times (ms) | Response Times (ms) | ||||||||
Label | #Samples | 95th pct | Average | #Samples | 95th pct | Average | #Samples | 95th pct | Average | #Samples | 95th pct | Average |
Check-Out Controller | 2461 | 1360 | 1122 | 6142 | 1657 | 1201 | 8951 | 1993 | 1347 | 18085 | 3733 | 2825 |
Check-In Controller | 1898 | 651 | 459 | 4711 | 718 | 445 | 6845 | 824 | 484 | 13572 | 1324 | 847 |
POST_circulation/check-out-by-barcode (Submit_barcode_checkout) | 2462 | 453 | 345 | 6144 | 556 | 368 | 8955 | 677 | 420 | 18094 | 1164 | 1072 |
POST_circulation/check-in-by-barcode (Submit_barcode_checkin) | 1899 | 387 | 253 | 4713 | 439 | 229 | 6848 | 503 | 246 | 13574 | 857 | 441 |
GET_circulation/loans (Submit_patron_barcode) | 2463
| 222
| 140 | 6144 | 32 | 19 | 8962 | 298 | 173 | 36192
| 365 | 180 |
GET_circulation/loans (Submit_barcode_checkout) | 2462
| 204
| 143
| 6144 | 34 | 19 | 8955 | 314 | 190 | 18088 | 579 | 372 |
GET_inventory/items (Submit_barcode_checkout) | 2462 | 58 | 39 | 6144 | 83 | 42 | 8957 | 99 | 49 | 18094 | 135 | 81 |
Test #5
30 vUsers Longevity test (test #5) | |||
---|---|---|---|
Requests |
| Samples, Response Times (ms) | |
Label | #Samples | 95th pct | Average |
Check-Out Controller | 286164 | 2564 | 1699 |
Check-In Controller | 216465 | 795 | 517 |
POST_circulation/check-out-by-barcode (Submit_barcode_checkout) | 286171 | 945 | 534 |
POST_circulation/check-in-by-barcode (Submit_barcode_checkin) | 216465 | 439 | 253 |
GET_circulation/loans (Submit_patron_barcode) | 286182 | 394 | 222 |
GET_circulation/loans (Submit_barcode_checkout) | 286169 | 404 | 240 |
GET_inventory/items (Submit_barcode_checkout) | 286172 | 122 | 64 |
Comparisons
This table has comparison between average values of response times of Sunflower and Ramsons releases
| 8 vUsers (test #1) | 20 vUsers (test #2) | 30 vUsers (test #3) | 75 vUsers (test #4) | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Requests | Response Times, milliseconds | |||||||||||||||
| Ramson | Sunflower |
|
| Ramsons | Sunflower |
|
| Ramsons | Sunflower |
|
| Ramsons | Sunflower |
|
|
Label | Average | Delta,ms | Difference,% | Average | Delta,ms | Difference,% | Average | Delta,ms | Difference,% | Average | Delta,ms | Difference,% | ||||
Check-Out Controller | 1153 | 1122 | 31 | -2.6% | 1123 | 1201 | 78 | 6.94% | 1120 | 1347 | 227 | 20.26% | 1483 | 2825 | 1342 | 90.49% |
Check-In Controller | 590 | 459 | 131 | -22.20% | 559 | 445 | 114 | -20.39% | 556 | 484 | 72 | -12.94% | 659 | 847 | 188 | 28.57% |
Comparison of longevity test
30 vUsers Longevity (test #5) | |||
---|---|---|---|
Response Times, milliseconds |
|
| |
Ramsons | Sunflower |
|
|
Average | Average | Delta,ms | Difference,% |
1095 | 1699 | 604 | 55.15% |
493 | 517 | 24 | 4.86% |
API requests where response times >= 100 milliseconds
API | 75 vUsers Ramsons Average, ms |
---|---|
POST_circulation/check-out-by-barcode (Submit_barcode_checkout) | 1072 |
POST_circulation/check-in-by-barcode (Submit_barcode_checkin) | 441 |
GET_circulation/loans (Submit_patron_barcode) | 372 |
GET_circulation/loans (Submit_barcode_checkout) | 372 |
GET_automated-patron-blocks (Submit_patron_barcode) | 180 |
Cluster Resources Utilization
CPU Utilization
CPU utilization depends on number of concurrent virtual users and increasing accordingly.