[Poppy] List App with multiple workflows and R/W split enabled test report
- 1 Overview
- 2 Summary
- 3 Test runs
- 4 Results
- 5 Grafana results
- 5.1 DI + CICO
- 5.2 ListApp + DI + CICO
- 6 Service CPU Utilization
- 6.1 ListApp
- 6.2 DI + CICO
- 6.3 ListApp + DI + CICO
- 7 Memory Utilization
- 7.1 ListApp
- 7.2 DI + CICO
- 7.3 ListApp + DI + CICO
- 8 DB CPU Utilization
- 8.1 ListApp
- 8.2 DI + CICO
- 8.3 ListApp + DI + CICO
- 9 DB Connections
- 9.1 ListApp
- 9.2 DI + CICO
- 9.3 ListApp + DI + CICO
- 10 DB Load
- 10.1 ListApp
- 10.2 DI + CICO
- 10.3 ListApp + DI + CICO
- 11 Appendix
- 11.1 Infrastructure
- 11.2 Additional info
- 11.3 Methodology
Overview
This document contains the results of testing List App refreshing of 200k records with multiple parallel workflows (Check-in/Check-out and Data import) and R/W split enabled in the Poppy release. The goal of testing is to assess the performance of mod-lists along with other workflows (CICO and DI) and R/W split enabled and to measure mod-lists' impact on other modules
Ticket:
Summary
Load tests showed that average List App refresh duration in multiple-workflow test with R/W split enabled is 11.4 min.
ListApp duration while testing separately is 3.9 minutes less (7.5 min).
ListApp duration while testing with other workflows but with R/W split disabled is 6.3 minutes more (17.7 min).
According to the results, maximum CPU utilization for DI+CICO test is about 126%, while with ListApp scenario added CPU reaches 150%.
CPU utilization of mod-lists and mod-fqm-manager for ListApp+DI+CICO test is up to 140% with R/W split enabled, while it reaches only 105% with R/W split disabled.
RDS CPU utilization (writer instance) is about 96% for DI+CICO test and it doesn't increase with ListApp scenario added. RDS CPU utilization for reader instance reaches 95% during ListApp+DI+CICO test.
RDS CPU utilization for ListApp+DI+CICO (writer instance) didn't change in comparison with the same test but with R/W split disabled for mod-fqm-manager.
No memory leak is suspected of all the modules.
Test runs
Query used in lists - "Item status != Available". List refresh result is 200K records.
Scenario | Data quantity |
|---|---|
List App + Check-in/Check-out + Data Import Create* | ListApp - 10 users CICO - 20 users DI - 25k |
Check-in/Check-out + Data import* | CICO - 20 users DI - 25k |
List App | ListApp - 10 users |
*PTF Create 2 job was used for DI scenario
Results
Transaction | Duration | |||
|---|---|---|---|---|
R/W split disabled* | R/W split enabled** | |||
Testing separately (ListApp and DI+CICO)
| Testing in parallel
| Testing separately (ListApp and DI+CICO) | Testing in parallel | |
ListApp refresh, avg | 8.5 min | 17.7 min | 7.5 min (-1 min) | 11.4 min (-6.3 min) |
Check-in, avg | 1.173 sec | 1.290 sec | 0.992 (-0.181 sec) | 1.087 (-0.203 sec) |
Check-out, avg | 1.648 sec | 1.948 sec | 1.634 (-0.014 sec) | 1.765 (-0.183 sec) |
DI Create 25k | 18 min | 22 min | 13 min (-5 min) | 15 min (-7 min) |
* Query used in lists - "Item status == Checked out". List refresh result is 200K records. Results are taken from previous test report: [Poppy] List App with multiple workflows and R/W split disabled test report
**Query used in lists - "Item status != Available". List refresh result is about 200K records.
Grafana results
DI + CICO
ListApp + DI + CICO
Service CPU Utilization
According to the results, maximum CPU utilization for DI+CICO test is about 126%, while with ListApp scenario added CPU reaches 150%.
CPU utilization of mod-lists and mod-fqm-manager for ListApp+DI+CICO test is up to 140% with R/W split enabled, while it reaches only 105% with R/W split disabled.
ListApp
DI + CICO
ListApp + DI + CICO
ListApp + DI + CICO with R/W split disabled*
*Results are taken from the previous report: [Poppy] List App with multiple workflows and R/W split disabled test report.
Memory Utilization
No memory leaks were found during the tests.
ListApp
DI + CICO
ListApp + DI + CICO
DB CPU Utilization
RDS CPU utilization (writer instance) is about 96% for DI+CICO test and it doesn't increase with ListApp scenario added. RDS CPU utilization for reader instance reaches 95% during ListApp+DI+CICO test.
RDS CPU utilization for ListApp+DI+CICO (writer instance) didn't change in comparison with the same test but with R/W split disabled for mod-fqm-manager.
ListApp
DI + CICO
ListApp + DI + CICO
ListApp + DI + CICO with R/W split disabled*
*Results are taken from the previous report: [Poppy] List App with multiple workflows and R/W split disabled test report.
DB Connections
ListApp
DI + CICO
ListApp + DI + CICO
DB Load
ListApp
Reader instance
Writer instance
DI + CICO
Writer instance
ListApp + DI + CICO
Reader instance
Writer instance
Appendix
Infrastructure
PTF -environment pcp1
10 m6i.2xlarge EC2 instances located in US East (N. Virginia)us-east-1
1 database instance, writer
MSK tenant
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:27.0.0 | 10 | 2 | 4096 | 3690 | 2048 | 3076 | 384 | 512 | false |
mod-users:19.2.0 | 19 | 2 | 1024 | 896 | 128 | 768 | 88 | 128 | false |
nginx-okapi:2023.06.14 | 8 | 2 | 1024 | 896 | 128 | 0 | 0 | 0 | false |
mod-circulation-storage:17.1.0 | 10 | 2 | 2880 | 2592 | 1536 | 1814 | 384 | 512 | false |
okapi:5.1.1 | 9 | 3 | 1684 | 1440 | 1024 | 922 | 384 | 512 | false |
mod-inventory:20.1.0 | 9 | 2 | 2880 | 2592 | 1024 | 1814 | 384 | 512 | false |
mod-circulation:24.0.0 | 10 | 2 | 2880 | 2592 | 1536 | 1814 | 384 | 512 | false |
pub-okapi:2023.06.14 | 8 | 2 | 1024 | 896 | 128 | 768 | 0 | 0 | false |
mod-fqm-manager:1.0.0 | 5 | 2 | 1024 | 896 | 128 | 768 | 88 | 128 | true |
mod-lists:1.0.0 | 5 | 2 | 3000 | 2600 | 128 | 2048 | 384 | 512 | false |
Additional info
Grafana graphs:
List App + Check-in/Check-out + Data Import Create
Check-in/Check-out + Data import
Methodology
Enable R/W split for mod-fqm-manager.
Create 10 lists with the query "Item status != Available" on each of three tenants to be able to run a test for up to 30 concurrent lists.
Prepare 200K item records for the query to return. Details can be found at the link: Steps for testing process#ListApp
Conduct test with ListApp scenario
Conduct test with ListApp scenario + CICO + DI
Conduct test withCICO + DI scenarios
Compare the results