[Poppy] List App with multiple workflows and R/W split enabled test report
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:
- PERF-708Getting issue details... STATUS
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
Name API Name Memory GIB vCPUs max_connections R6G Extra Large db.r6g.xlarge 32 GiB 4 vCPUs 2731 - 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