Overview
Test goal is to assess performance impact of Check-out lock feature on Check-out functionality.
Ticket: - PERF-627Getting issue details... STATUS
Summary
- Load tests showed that there is no significant influence of check-out lock on performance of the application.
- Average response time of check-out request is about 0.5s (level of load - 6.6 requests/minute).
Recomendations and Jiras
Test runs
Scenario | Level of load | Configuration | Response time average | Response time 95perc |
---|---|---|---|---|
Check-out API | 10 virtual users, 20 requests each (during 30 minutes). Overal load - 6.6 requests/minute | Check-out lock enabled* | 0.558 | 2.152 |
Check-out lock disabled | 0.513 | 0.556 | ||
100 virtual users, 20 requests each (during 30 minutes). Overal load - 66 requests/minute | Check-out lock enabled* | 0.379 | 0.476 | |
Check-out lock disabled | 0.336 | 0.391 |
*Check-out lock feature was enabled with the following parameters:
- "noOfRetryAttempts" - 30
- "retryInterval" - 250
- "lockTtl" - 2000
Test results
Check-out lock enabled
Check-out lock disabled
Check-out lock enabled
Check-out lock disabled
Service CPU Utilization
Memory Utilization
DB CPU Utilization
DB Connections
DB Load
Top SQL
Check-out lock enabled
Check-out lock disabled
Appendix
Infrastructure
PTF -environment pcp1
- 10 m6i.2xlarge EC2 instances located in US East (N. Virginia)us-east-1
1 database instances, writer
Name API Name Memory GIB vCPUs max_connections R6G Extra Large db.r6g.xlarge 32 GiB 4 vCPUs 2731 - MSK ptf-kakfa-3
- 4 m5.2xlarge brokers in 2 zones
Apache Kafka version 2.8.0
EBS storage volume per broker 300 GiB
- auto.create.topics.enable=true
- log.retention.minutes=480
- default.replication.factor=3
Module | Task Def. Revision | Task Count | Mem Hard Limit | Mem Soft limit | CPU units | Xmx | MetaspaceSize | MaxMetaspaceSize | R/W split enabled |
---|---|---|---|---|---|---|---|---|---|
mod-inventory-storage:26.1.0-SNAPSHOT.685 | 7 | 1 | 4096 | 3690 | 2048 | 3076 | 384 | 512 | false |
mod-users:19.2.0-SNAPSHOT.638 | 17 | 1 | 1024 | 896 | 128 | 768 | 88 | 128 | false |
mod-feesfines:18.3.0-SNAPSHOT.172 | 8 | 1 | 1024 | 896 | 128 | 768 | 88 | 128 | false |
mod-circulation-storage:16.1.0-SNAPSHOT.344 | 7 | 1 | 2880 | 2592 | 1536 | 1814 | 384 | 512 | false |
mod-pubsub:2.10.0-SNAPSHOT.157 | 7 | 1 | 1536 | 1440 | 1024 | 922 | 384 | 512 | false |
mod-configuration:5.9.2-SNAPSHOT.323 | 7 | 1 | 1024 | 896 | 128 | 768 | 88 | 128 | false |
okapi:5.0.1 | 7 | 1 | 1684 | 1440 | 1024 | 922 | 384 | 512 | false |
mod-inventory:20.1.0-SNAPSHOT.446 | 7 | 1 | 2880 | 2592 | 1024 | 1814 | 384 | 512 | false |
mod-circulation:24.0.0-SNAPSHOT.593 | 8 | 1 | 2880 | 2592 | 1536 | 768 | 88 | 128 | false |
mod-patron-blocks:1.9.0-SNAPSHOT.119 | 7 | 1 | 1024 | 896 | 1024 | 768 | 88 | 128 | false |
mod-authtoken:2.14.0-SNAPSHOT.263 | 7 | 1 | 1440 | 1152 | 512 | 922 | 88 | 128 | false |
Methodology
Conduct baseline tests with check-out lock disabled.
Conduct verification tests with check-out lock enabled. It can be done directly in the database (table [tenant]_mod_settings.settings).
Value used for the testing:
{ "value": "{\"checkOutLockFeatureEnabled\":true,\"noOfRetryAttempts\":30,\"retryInterval\":250,\"lockTtl\":2000}" }