Check-in-check-out Test Report (Quesnelia)
Overview
The test's target is to investigate the behaviour of the Check-In/Check-Out activities during fixed load tests.
https://folio-org.atlassian.net/browse/PERF-835
Summary
Check-In/Check-Out tests on Quesnelia carried out with 8, 20, 30, 75 virtual users during 45 minutes and with 30 virtual users during longevity test (24 hours) to detect any trends in resource utilization
45 minute tests
Response times in tests with 8, 20, 30 virtual users didn't differ a lot but the lowest response times were with 20 virtual users. Average in 20 vUsers test Check-In - 404 ms, average Check-Out - 729 ms
The highest response times results were with 75 virtual users. Average Check-In - 580 ms, Check-Out - 1039 ms
Longevity test
Average Check-In - 454 ms, Check-Out - 1060 ms (the results from the test with absent dcb-system-user)
No memory leaks during longevity test
Comparison with Poppy Results:
CI/CO response times improved by 10%-15% in 8, 20 vUsers and 5% in 30 vUsers tests.
For 75 vUsers test Check-in and Check-out response times improved 7% in Quesnelia release.
Resources
CPU utilization
45 minute and longevity tests used CPU in correspondence with number of vUsers but there are some modules that spiked during 75 vUsers test - mod-users-b - 132%, mod-authtoken-b - 98%, nginx-okapi - 84%.
Memory consumption
45 minute and longevity tests didn't reveal some problems with memory usage by modules. So no memory leaks detected.
RDS CPU utilization average
8 vUsers - 13%, 20 vUsers - 22%, 30 vUsers - 30%, 75 vUsers - 63% During longevity test CPU grew from 30% to 45%. So it has growing trend during longevity test that can be explained by absent dcb-system-user in mod-dcb module.
CPU (User) usage by broker
Common CPU utilization by broker during all tests was 15% with equal distribution between brokers
Common notes
Longevity test revealed CPU Utilization growing trend for mod-dcb-b module.
Recommendations
Control mod-dcb-b module related system user creation. For some reason dcb-system-user was not created after environment creation, additional redeploy of module, enabling resolved the issue. It may lead to a huge performance degradation.
Add more CPU to mod-users to exclude module fluctuations
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
Errors:
Error messages: POST_circulation/check-out-by-barcode (Submit_barcode_checkout)_POST_422. 422/Unprocessable Entity. Happen expectedly if instance was checked out already. Error rate - 0.06% which is acceptable.
Response time
The table contains results of Check-in, Check-out tests in Quesnelia release.
45 minute tests
| 8 vUsers | 20 vUsers | 30 vUsers | 75 vUsers | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
Requests | Response Times (ms) | Response Times (ms) | Response Times (ms) | Response Times (ms) | ||||||||
Label | #Samples | Average | 95th pct | #Samples | Average | 95th pct | #Samples | Average | 95th pct | #Samples | Average | 95th pct |
Check-Out Controller | 1857 | 741.82 | 904.1 | 4614 | 729.26 | 859 | 6637 | 767.83 | 935 | 14637 | 1039.21 | 1323 |
Check-In Controller | 1394 | 408.2 | 484 | 3378 | 404.24 | 475 | 5063 | 427.22 | 527 | 11136 | 580.9 | 752 |
POST_circulation/check-out-by-barcode (Submit_barcode_checkout) | 1858 | 256.34 | 337 | 4615 | 247.44 | 297 | 6639 | 252.35 | 310 | 14642 | 343.5 | 457 |
POST_circulation/check-in-by-barcode (Submit_barcode_checkin) | 1395 | 172.66 | 225.2 | 3382 | 170.31 | 205 | 5080 | 174.75 | 224.95 | 11159 | 242.61 | 323 |
GET_circulation/loans (Submit_barcode_checkout) | 1856 | 136.69 | 185.15 | 4613 | 133.16 | 161 | 6636 | 138.46 | 176 | 14628 | 186.43 | 259 |
Longevity test (with absent dcb-system-user)
30 vUsers Longevity |
|
|
|
|---|---|---|---|
Requests | Samples, Response Times |
|
|
Label | #Samples | 95th pct | Average |
Check-Out Controller | 135591 | 1247 | 1065 |
Check-In Controller | 101990 | 525 | 454 |
POST_circulation/check-out-by-barcode (Submit_barcode_checkout) | 135593 | 410 | 340 |
POST_circulation/check-in-by-barcode (Submit_barcode_checkin) | 101981 | 228 | 193 |
Comparisons
This table has comparison between average values of response times of Quesnelia and Poppy releases
| 8 vUsers | 20 vUsers | 30 vUsers | 75 vUsers | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Requests | Response Times | Response Times | Response Times | Response Times | ||||||||||||
| Poppy | Quesnelia |
|
| Poppy | Quesnelia |
|
| Poppy | Quesnelia |
|
| Poppy | Quesnelia |
|
|
Label | Average | Delta,ms | Difference,% | Average | Delta,ms | Difference,% | Average | Delta,ms | Difference,% | Average | Delta,ms | Difference,% | ||||
Check-Out Controller | 832 | 741 | -91 | -10.94% | 805 | 729 | -76 | -9.44% | 807 | 767 | -40 | -4.96% | 1116 | 1039 | -77 | -6.90% |
Check-In Controller | 479 | 408 | -71 | -14.82% | 450 | 404 | -46 | -10.22% | 449 | 427 | -22 | -4.90% | 622 | 580 | -42 | -6.75% |
Comparison of Longevity test (absent dcb-system-user in Quesnelia)
30 vUsers Longevity | |||
|---|---|---|---|
Response Times |
|
| |
Poppy | Quesnelia |
|
|
Average | Average | Delta,ms | Difference,% |
1025 | 1065 | 40 | 3.90% |
471 | 454 | -17 | -3.61% |
API requests where response times >= 100 ms
API | 30 vUsers Poppy Average, ms | 30 vUsers Quesnelia Average, ms |
|---|---|---|
POST checkout-by-barcode | 281 | 252 |
POST checkin-by-barcode | 173 | 175 |
GET circulation/loans | 135 | 138 |