Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


Table of Contents

...

titleWIP

...


Table of Contents

Info
titleWIP

Work in progress...

Overview

Jira Legacy
serverSystem Jira
serverId01505d01-b853-3c2e-90f1-ee9b165564fc
keyPERF-932
 was created to re-run RTAC performance test in the Honeysuckle the Quesnelia environment which will verify performance issues reported by 
Jira Legacy
serverSystem Jira
serverId01505d01-b853-3c2e-90f1-ee9b165564fc
keyPERF-895

...

  1. On average edge-rtac GET_/rtac?instanceIds=id1,id2,id3,idn API call takes 721.40 ms for 1 instance with 300+ 807 ms for 50 instance with 3,4,5,6,7 holdings. This is an improvement from 172.5 6 seconds in Fameflower Honeysuckle.
  2. On average mod-rtac POST_/rtac-batch API call takes 529 487 ms for 1 instance with 300+ 50 instances with 3,4,5,6,7 holdings. This is an improvement from 17 2.6 seconds in FameflowerHoneysuckle.
  3. On running mod-rtac running mod-inventory-storage POST_/rtac-batch API for more than 5 users for 15 minutes test run, mapping errors were seen. Please see MODRTAC-53 in recommended improvements belowinventory-hierarchy/items-and-holdings for 20 users API call takes 500 ms for 50 instances with 3,4,5,6,7 holdings. This is an improvement from 9.3 seconds in Honeysuckle

Test Runs

Test

Virtual Users

Duration

Holdings per instance

API call

1. 

1

30 min

greater than 300

mod-rtac POST https://[hostName]/rtac-batch
2.

1

30 mingreater than 300edge-rtac GET https://edge-[hostName]/rtac?instanceIds=id1,id2,id3,id4,id5,id6,id7,id8,id9,id10&apikey={API_KEY}&fullPeriodicals=true
3.130 min50 instances with a mix of 3,4,5,6,7 holdings per instanceedge-rtac GET https://edge-[hostName]/rtac?instanceIds=id1,id2,id3,id4,id5,id6,id7,id8,id9,id10&apikey={API_KEY}&fullPeriodicals=true
4.130 min50 instances with a mix of 3,4,5,6,7 holdings per instancemod-rtac POST https://[hostName]/rtac-batch
5.215 min50 instances with a mix of 3,4,5,6,7 holdings per instancemod-rtac POST https://[hostName]/rtac-batch
6.2015 min50 instances with a mix of 3,4,5,6,7 holdings per instancemod-rtac POST https://[hostName]/rtac-batch
7.1515 min50 instances with a mix of 3,4,5,6,7 holdings per instancemod-inventory-storage POST https://[hostName]/inventory-hierarchy/items-and-holdings 
8.2015 min50 instances with a mix of 3,4,5,6,7 holdings per instancemod-inventory-storage POST https://[hostName]/inventory-hierarchy/items-and-holdings 


Results

mod-rtac

A mod-rtac level request to get all open loans for greater than 300 holdings per instance

POST /rtac-batch for 30 minutesTotal InstancesTotal HoldingsAverage 95th %tileAverage (Honeysuckle)Delta
1 user1333790 ms854 ms529 ms+261 ms
1 user50mix of 3,4,5,6,7487 ms516 ms2.57 seconds-2.1 sec
1 user30>=10 (one has 5k) from 
Jira Legacy
serverSystem Jira
serverId01505d01-b853-3c2e-90f1-ee9b165564fc
keyPERF-895
2659 ms2933 ms--
1 user1>=10 from 
Jira Legacy
serverSystem Jira
serverId01505d01-b853-3c2e-90f1-ee9b165564fc
keyPERF-895
82 ms86 ms--

...

POST /rtac-batch for 15 minutesTotal InstancesTotal HoldingsAverage 95th %tileAverage (Honeysuckle)Delta
2 users50mix of 3,4,5,6,7538 ms627 ms2.97 seconds-2.4 sec
20 users50mix of 3,4,5,6,73622 ms4194 ms21.75 seconds

...

-18.1 sec

No errors for mod-rtac were found in CloudWatch logs

mod-rtac calls inventory-hierarchy. To investigate the error for mod-rtac for concurrent users(2 or more), POST inventory-hierarchy/items-and-holdings   API tests were run for 15 users and 20 users. No errors were reported.

POST inventory-hierarchy/items-and-holdings for 15 minutesTotal InstancesTotal HoldingsAverage 95th %tileAverage (Honeysuckle)Delta
15 users50mix of 3,4,5,6,7371 ms513 ms7.11 seconds-6.7 sec
20 users50mix of 3,4,5,6,7500 ms704 ms9.34 seconds-8.8 sec


edge-rtac

An edge-rtac level request to get all open loans for greater than 300 holdings per instance

GET /rtac for 30 minutesTotal InstancesTotal HoldingsAverage 95th %tileAverage (Honeysuckle)Delta
1 user1333800 ms972 ms721 ms+79 ms
1 user50mix of 3,4,5,6,7807 ms1349 ms2.58 seconds-1.7 sec
1 user50mix of 11,125796 ms10997 ms--
2 users50mix of 11,126904 ms14619 ms--
20 users50mix of 11,1234725 ms57423 ms--
1 user30>=10 (one has 5k) from  
Jira Legacy
serverSystem Jira
serverId01505d01-b853-3c2e-90f1-ee9b165564fc
keyPERF-895
4887 ms5165 ms--
50 users30>=10 (one has 5k) from  
Jira Legacy
serverSystem Jira
serverId01505d01-b853-3c2e-90f1-ee9b165564fc
keyPERF-895
63966 ms10123 ms--
1 user1>=10 (one has 5k) from  
Jira Legacy
serverSystem Jira
serverId01505d01-b853-3c2e-90f1-ee9b165564fc
keyPERF-895
239 ms412 ms--

...


Average Time, ms

Module

Query

1 user119 msmod_inventory_storage

select * from get_items_and_holdings_view($1,$2)

50 instances with a mix of 3,4,5,6,7 holdings per instance


Average Time, ms

Module

Query

20 users1057 msmod_inventory_storage

select * from get_items_and_holdings_view($1,$2)


RDS CPU Utilization

1 user 1 instance with 333 holdings. CPU is around 24% which is normal.

.

1 user 50 instances with a mix of 3,4,5,6,7 holdings per instance. CPU is around 27% which is normal.

.

15 users, 20 users 50 instances with a mix of 3,4,5,6,7 holdings per instance. CPU is close to 100% which is high because DB was fired with 15, 20 different users. This run involved 504 errors from mod-rtac. These many numbers of concurrent users are rare and will not happen in production.

Service Memory Utilization

15 users and 20 users for 50 instances with a mix of 3,4,5,6,7 holdings per instance. Service memory Utilization is relatively high for mod-rtac compared to other modules in the graph but this is rare. This use case was run to recreate the issue reported in MODRTAC-53. 2 vertical lines represent the time range for the test run.

.

Service CPU Utilization

15 users and 20 users for 50 instances with a mix of 3,4,5,6,7 holdings per instance. CPU Utilization is relatively high but this is rare. This use case was run to recreate the issue reported in MODRTAC-53

.

Appendix

Backend:

  • mod-circulation-19.2.3
  • mod-circulation-storage-12.1.2
  • mod-inventory-storage-19.4.3
  • mod-inventory-16.1.0
  • okapi-4.2.2
  • mod-authtoken-2.6.0
  • mod-permissions-5.12.2

Environment:

...

99.5% for /inventory-hierarchy. For 1 user was about 18%

Image Added

Image Added


Service Memory Utilization

Image Added

Service CPU Utilization

Image Added

Appendix

  • 14 m6i.2xlarge EC2 instances located in US East (N. Virginia)us-east-1 
  • 1 instance of db.r6.xlarge database instance: Writer instance
  • MSK tenant [ kafka configurations]
    • 4 kafka.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

Modules memory and CPU parameters

ModuleTask Def. RevisionModule VersionTask CountMem Hard LimitMem Soft limitCPU unitsXmxMetaspaceSizeMaxMetaspaceSize
pcp1-pvt

mod-rtac5
mod-rtac:3.6.0
2102489612876888128
mod-authtoken6
mod-authtoken:2.15.1
21440115251292288128
mod-permissions10
mod-permissions:6.5.0
2168415445121024384512
mod-inventory-storage5
mod-inventory-storage:27.1.0
24096369020483076384512
mod-circulation-storage5
mod-circulation-storage:17.2.0
22880259215361814384512
mod-inventory5
mod-inventory:20.2.0
22880259210241814384512
mod-circulation5
mod-circulation:24.2.0
22880259215361814384512
edge-rtac5
edge-rtac:2.7.1
2102489612876888128
nginx-okapi5
nginx-okapi:2023.06.14
21024896128000
okapi5
okapi:5.3.0
3168414401024922384512

Methodology/Approach

Run the test from the script one by one. 8 tests as described  in Test Runs

Image Added

Image Added