Overview
The test's target is to investigate the behaviour of the Check-In/Check-Out activities during fixed load tests.
- PERF-879Getting issue details... STATUS
Summary IN-PROGRESS
Check-In/Check-Out tests on Quesnelia release (Eureka) in QECP1 environment 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
Longevity test
Comparison with Poppy Results:
Resources
- CPU utilization
- Memory consumption
- RDS CPU utilization average
- CPU (User) usage by broker
Common notes
Recommendations
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 (Eureka).
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 | ||||||||||||
Check-In Controller | ||||||||||||
POST_circulation/check-out-by-barcode (Submit_barcode_checkout) | ||||||||||||
POST_circulation/check-in-by-barcode (Submit_barcode_checkin) | ||||||||||||
GET_circulation/loans (Submit_barcode_checkout) |
Longevity test (with absent dcb-system-user)
30 vUsers Longevity | |||
---|---|---|---|
Requests | Samples, Response Times | ||
Label | #Samples | 95th pct | Average |
Check-Out Controller | |||
Check-In Controller | |||
POST_circulation/check-out-by-barcode (Submit_barcode_checkout) | |||
POST_circulation/check-in-by-barcode (Submit_barcode_checkin) |
Comparisons
This table has comparison between average values of response times of Quesnelia and Quesnelia (Eureka) 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 | ||||||||||||||||
Check-In Controller |
Comparison of Longevity test (absent dcb-system-user in Quesnelia)
30 vUsers Longevity | |||
---|---|---|---|
Response Times | |||
Poppy | Quesnelia | ||
Average | Average | Delta,ms | Difference,% |
API requests where response times >= 100 ms
API | 30 vUsers Poppy Average, ms | 30 vUsers Quesnelia Average, ms |
---|---|---|
POST checkout-by-barcode | ||
POST checkin-by-barcode | ||
GET circulation/loans |
Resources Utilization
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%.
45 minute tests
Longevity test (with absent dcb-system-user)
Memory Consumption
45 minute and longevity tests didn't reveal some problems with memory usage by modules. So no memory leaks detected. Modules that consumed max memory - mod-search - 94%, mod-oa - 78%, mod-inventory - 72%, mod-dcb - 71%
45 minute tests
Longevity test
RDS CPU Utilization
RDS CPU utilized:
8 vUsers - 13%, 20 vUsers - 22%, 30 vUsers - 30%, 75 vUsers - 50% During longevity test CPU grew from 30% to 45%. So it has growing trend during longevity test.
45 minute tests
Longevity test
RDS Database Connections
For both 45 minute and longevity tests RDS used max 615-630 connections. Without test it was 550 connections.
45 minute tests
Longevity test
CPU (User) usage by broker
Common CPU utilization by broker during all tests was 15% with equal distribution between brokers
45 minute tests
Longevity test
Database load
75 vUsers
Appendix
Infrastructure
PTF -environment qecp1 |
---|
|
DB table records size:
|
---|
Modules
Methodology/Approach
- Run data preparation script before each CI/CO test
- Update .jmx file script for Quesnelia release
- Create artefact and upload to carrier-io
- Use Jenkins job to change parameters and run tests
- Test CI/CO with 8, 20, 30, 75 concurrent users for 45 minutes each.
- Test CI/CO with 30 users for 24 hours to detect any trends in memory.