Skip to end of banner
Go to start of banner

[Poppy] List App with multiple workflows and R/W split enabled test report

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 8 Next »

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's impact on other modules

Ticket:

PERF-708 - Getting 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 testig separately is 3.9 minutes less (7.5 min).
  • ListApp duration while testig 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 utilizatoin for ListApp+DI+CICO (writer instance) didn't change in comparion with the same test but with R/W split disabled for mod-fqm-manager.
  • No memory leak is suspected for 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 AppListApp - 10 users

*PTF Create 2 job was used for DI scneario

Results

TransactionDuration
 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, avg8.5 min17.7 min7.5 min (-1 min)11.4 min (-6.3 min)
Check-in, avg1.173 sec1.290 sec0.992 (-0.181 sec)1.087 (-0.203 sec)
Check-out, avg1.648 sec1.948 sec1.634 (-0.014 sec)1.765 (-0.183 sec)
DI Create 25k 18 min22 min13 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  with R/W split disabled*

service_cpu_parallel_2.png

*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 utilizatoin for ListApp+DI+CICO (writer instance) didn't change in comparion with the same test but with R/W split disabled for mod-fqm-manager.

ListApp

DI + CICO

ListApp + DI + CICO


ListApp + DI + CICO with  with R/W split disabled*

db_cpu_parallel.png

*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

    NameAPI NameMemory GIBvCPUsmax_connections
    R6G Extra Largedb.r6g.xlarge32 GiB4 vCPUs2731
  • 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
pcp1-pvt

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.01024096369020483076384512false
mod-users:19.2.0192102489612876888128false
nginx-okapi:2023.06.14821024896128000false
mod-circulation-storage:17.1.01022880259215361814384512false
okapi:5.1.193168414401024922384512false
mod-inventory:20.1.0922880259210241814384512false
mod-circulation:24.0.01022880259215361814384512false
pub-okapi:2023.06.1482102489612876800false
mod-fqm-manager:1.0.052102489612876888128true
mod-lists:1.0.052300026001282048384512false


Additional info

Grafana graphs:

List App + Check-in/Check-out + Data Import Create

http://carrier-io.int.folio.ebsco.com/grafana/d/elIt9zCnz/jmeter-performance-with-average-latency?orgId=1&var-percentile=95&var-test_type=baseline&var-test=circulation_checkInCheckOut_Poppy_2&var-env=int&var-grouping=1s&var-low_limit=250&var-high_limit=750&var-db_name=jmeter&var-sampler_type=All&var-Request=All&from=1699353475555&to=1699354950119

Check-in/Check-out + Data import

http://carrier-io.int.folio.ebsco.com/grafana/d/elIt9zCnz/jmeter-performance-with-average-latency?orgId=1&var-percentile=95&var-test_type=baseline&var-test=circulation_checkInCheckOut_Poppy_2&var-env=int&var-grouping=1s&var-low_limit=250&var-high_limit=750&var-db_name=jmeter&var-sampler_type=All&var-Request=All&from=1699290758840&to=1699291480510


Methodology

  1. Enable R/W split for mod-fqm-manager.
  2. 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.
  3. Prepare 200K item records for the query to return. Details can be found at the link: Steps for testing process#ListApp
  4. Conduct test with ListApp scenario

  5. Conduct test with ListApp scenario + CICO + DI

  6. Conduct test withCICO + DI scenarios

  7. Compare the results



  • No labels