Versions Compared

Key

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

Table of Contents
outlinetrue

...

  • All tests were run successfully and without errors on the Mobius-performance testing cluster (mcpt). Approximately over 100 tests with various environment configurations were conducted. The tests and configurations that showed the best results for two database modifications, such as db.r6g.4xlarge and db.r6g.8xlarge, will be demonstrated.
  • During testing, an insufficient amount of resources for Amazon OpenSearch Service was detected, so data node instance type was increased to r6g.2xlarge.search.
  • To improve performance, the AWS task count was adjusted for certain services, which increased the memory load on the database. To avoid OOM (Out of Memory) errors, configurations were changed in both the DB instance parameter group and the DB cluster parameter group. Specifically, the shared_buffers parameter was modified to SUM({DBInstanceClassMemory/24076},-50003).

  • To avoid "remaining connection slots are reserved for non-replication superuser and rds_superuser connections" errors, configurations were changed in both the DB instance parameter group and the DB cluster parameter group. max_connections was modified to LEAST({DBInstanceClassMemory/9531392},9000)
  •  For mod-authtoken CPU was changed from 512 to 1024 and task count was adjusted to 6 tasks (2 default), okapi and nginx-okapi CPU  was changed from 1024 to1536.
  • No sign of memory leaks on every module during master-script tests. Memory shows a stable trend. For tests with a high load of single record create and update (62 virtual users without pauses) OOM issue of mod-inventory was reported 

    Jira Legacy
    serverSystem Jira
    serverId01505d01-b853-3c2e-90f1-ee9b165564fc
    keyMODINV-1023

  • No modules are showing a growing CPU trend or any spikes. 
  • Average response time differs and depends on environment configurations.

  • The "Receiving: downloading" workflow. Due to its design, it's processed by the frontend and sends frequent requests to the database in a very large quantity. When under a load of 70% of tenants simultaneously, this causes significant degradation in the performance of all other workflows. Therefore, results are provided in tables with additional tests conducted with this workflow and without it. The CPU usage by the database increases by more than 25% with this workflow and reaches 99%.
  • Database connection count did not exceed 5700
  • During the high-load test, exporting 800,000 records concurrently for 62 tenants, an issue with the mod-data-export occurs
    Jira Legacy
    serverSystem Jira
    serverId01505d01-b853-3c2e-90f1-ee9b165564fc
    keyPERF-927
    , which will be resolved and tested in the next release - Quesnelia 
    Jira Legacy
    serverSystem Jira
    serverId01505d01-b853-3c2e-90f1-ee9b165564fc
    keyPERF-888
  • Test with Fiscal year rollover for 60 tenants shows severe performance degradation for data import and data export workflows due to high database CPU usage 99.8%


Recommendations

Database parameter group configuration:

parameterchanged valuedefault valueComment
shared_buffersSUM({DBInstanceClassMemory/24076},-50003)SUM({DBInstanceClassMemory/12038},-50003)Increases freeable db memory from 25% to 50% and decreases cache memory limit from 75% to 50%
max_connectionsLEAST({DBInstanceClassMemory/9531392},9000)LEAST({DBInstanceClassMemory/9531392},5000)Increases maximal connection limit from 5000 to 9000 connections

Amazon OpenSearch Service

data node instance type - r6g.2xlarge.search

Services

mod-authtoken CPU - 1024, 6 tasks

okapi CPU-1536

nginx-okapi CPU-1536

For database size db.r6g.4xlarge

adjust task count to 6 for services:

  • mod-authtoken

adjust task count to 4 for services:

  • mod-permissions
  • mod-search
  • mod-patron
  • mod-inventory
  • mod-inventory-storage
  • mod-circulation
  • mod-circulation-storage
  • mod-order
  • mod-order-storage,
  • mod-invoice
  • mod-invoice-storage
  • mod-users

For database size db.r6g.8xlarge

adjust task count to 6 for services:

  • mod-authtoken
  • mod-search

adjust task count to 4 for services:

  • mod-permissions
  • mod-patron
  • mod-inventory
  • mod-inventory-storage
  • mod-circulation
  • mod-circulation-storage
  • mod-order
  • mod-order-storage,
  • mod-invoice
  • mod-invoice-storage
  • mod-organization
  • mod-organization-storage
  • mod-users
  • mod-finance
  • mod-finance-storage
  • mod-configuration


"Receiving: downloading" workflow optimization

Test Runs 

Test #

Workflows

Test Conditions

Results

1.

All workflows

2 tasks for all of the modules  (except the modules with 1 task by requirements) database r6g.4xlarge, shared_buffers   parameters  SUM({DBInstanceClassMemory/24076},-50003)Amazon OpenSearch Service r6g.2хlarge.search, 

Completed
2.All workflows

Adjasted task count to 4 for services: mod-permissions, mod-search, mod-patron, mod-inventory, mod-inventory-storage, mod-circulation, mod-circulation-storage, mod-order, mod-order-storage, mod-invoice, mod-invoice-storage, mod-users and task count 6 for mod-authtoken. Database r6g.4xlarge, shared_buffers   parameters  SUM({DBInstanceClassMemory/24076},-50003)Amazon OpenSearch Service r6g.2хlarge.search, mod-authtoken CPU - 1024, okapi CPU-1536, nginx-okapi CPU-1536

Completed
3.Without ERW: Exporting Receiving Information to CSV

Adjasted task count to 4 for services: mod-permissions, mod-search, mod-patron, mod-inventory, mod-inventory-storage, mod-circulation, mod-circulation-storage, mod-order, mod-order-storage, mod-invoice, mod-invoice-storage, mod-users and task count 6 for mod-authtoken. Database r6g.4xlarge, shared_buffers   parameters  SUM({DBInstanceClassMemory/24076},-50003)Amazon OpenSearch Service r6g.2хlarge.search, mod-authtoken CPU - 1024, okapi CPU-1536, nginx-okapi CPU-1536

Completed
4.All workflowsAdjasted task count to 4 for services: mod-permissions, mod-search, mod-patron, mod-inventory, mod-inventory-storage, mod-circulation, mod-circulation-storage, mod-order, mod-order-storage, mod-invoice, mod-invoice-storage, mod-users, mod-organization, mod-organization-storage, mod-finance, mod-finance-storage, mod-configuration and task count 6 for mod-authtoken, mod-search. Database r6g.8xlarge, shared_buffers   parameters  SUM({DBInstanceClassMemory/24076},-50003)Amazon OpenSearch Service r6g.2хlarge.search, mod-authtoken CPU - 1024, okapi CPU-1536, nginx-okapi CPU-1536Completed
5.Without ERW: Exporting Receiving Information to CSVAdjasted task count to 4 for services: mod-permissions, mod-search, mod-patron, mod-inventory, mod-inventory-storage, mod-circulation, mod-circulation-storage, mod-order, mod-order-storage, mod-invoice, mod-invoice-storage, mod-users, mod-organization, mod-organization-storage, mod-finance, mod-finance-storage, mod-configuration and task count 6 for mod-authtoken, mod-search. Database r6g.8xlarge, shared_buffers   parameters  SUM({DBInstanceClassMemory/24076},-50003)Amazon OpenSearch Service r6g.2хlarge.search, mod-authtoken CPU - 1024, okapi CPU-1536, nginx-okapi CPU-1536Completed
6.All workflowsAdjasted task count to 4 for services: mod-permissions, mod-search, mod-patron, mod-inventory, mod-inventory-storage, mod-circulation, mod-circulation-storage, mod-order, mod-order-storage, mod-invoice, mod-invoice-storage, mod-users and task count 6 for mod-authtoken. Database r6g.4xlarge, shared_buffers   parameters  SUM({DBInstanceClassMemory/24076},-50003)Amazon OpenSearch Service r6g.2хlarge.search, mod-authtoken CPU - 1024, okapi CPU-1536, nginx-okapi CPU-1536Completed
7.All workflows, high-loadAdjasted task count to 4 for services: mod-permissions, mod-search, mod-patron, mod-inventory, mod-inventory-storage, mod-circulation, mod-circulation-storage, mod-order, mod-order-storage, mod-invoice, mod-invoice-storage, mod-users and task count 6 for mod-authtoken. Database r6g.4xlarge, shared_buffers   parameters  SUM({DBInstanceClassMemory/24076},-50003)Amazon OpenSearch Service r6g.2хlarge.search, mod-authtoken CPU - 1024, okapi CPU-1536, nginx-okapi CPU-1536Completed with errors from data export
8.All no-acquisition workflows + Fiscal year rollover  30 tenantsAdjasted task count to 4 for services: mod-permissions, mod-search, mod-patron, mod-inventory, mod-inventory-storage, mod-circulation, mod-circulation-storage, mod-order, mod-order-storage, mod-invoice, mod-invoice-storage, mod-users and task count 6 for mod-authtoken. Database r6g.4xlarge, shared_buffers   parameters  SUM({DBInstanceClassMemory/24076},-50003)Amazon OpenSearch Service r6g.2хlarge.search, mod-authtoken CPU - 1024, okapi CPU-1536, nginx-okapi CPU-1536Completed
9.All no-acquisition workflows + Fiscal year rollover  60 tenantsAdjasted task count to 4 for services: mod-permissions, mod-search, mod-patron, mod-inventory, mod-inventory-storage, mod-circulation, mod-circulation-storage, mod-order, mod-order-storage, mod-invoice, mod-invoice-storage, mod-users and task count 6 for mod-authtoken. Database r6g.4xlarge, shared_buffers   parameters  SUM({DBInstanceClassMemory/24076},-50003)Amazon OpenSearch Service r6g.2хlarge.search, mod-authtoken CPU - 1024, okapi CPU-1536, nginx-okapi CPU-1536Completed with errors from data import

...

Test №8 Fiscal year rollover (30 tenants)


FYR30 tenantserrors
CICO_TC_Check-In Controller22540
CICO_TC_Check-Out Controller40040
CSI_TC:Share local instance159210
DE_Exporting MARC Bib records custom workflow491950
DE_Exporting MARC Bib records workflow551580
EVA_TC: View Account4510.02%
ILR_TC: Create ILR14730
MSF_TC: mod search by auth query4980
MSF_TC: mod search by boolean query1500
MSF_TC: mod search by contributors3660
MSF_TC: mod search by filter query2620
MSF_TC: mod search by keyword query2610
MSF_TC: mod search by subject query4250
MSF_TC: mod search by title query10270
OPIH_/oai/records13870
RTAC_TC: edge-rtac21760
SDIC_Single Record Import (Create)216840
SDIU_Single Record Import (Update)451740
ULR_TC: Users loan Renewal Transaction30780
TOTAL3090

...





60 tenantsordersRolloverStatusoverallRolloverStatusfinancialRolloverStatus
budgetsClosingRolloverStatus
cs00000001_0001




-



cs00000001_00022:54:30SuccessSuccessSuccessSuccess6:20:54SuccessSuccessSuccessSuccess
cs00000001_00033:37:00SuccessSuccessSuccessSuccess6:28:36SuccessSuccessSuccessSuccess
cs00000001_00042:53:22SuccessSuccessSuccessSuccess5:16:45SuccessSuccessSuccessSuccess
cs00000001_00053:45:51SuccessSuccessSuccessSuccess6:09:05SuccessSuccessSuccessSuccess
cs00000001_00062:55:25SuccessSuccessSuccessSuccess6:30:16SuccessSuccessSuccessSuccess
cs00000001_00070:00:00Not StartedIn ProgressIn ProgressSuccess5:19:39SuccessSuccessSuccessSuccess
cs00000001_00083:36:40SuccessSuccessSuccessSuccess6:14:02SuccessSuccessSuccessSuccess
cs00000001_00092:56:24SuccessSuccessSuccessSuccess6:32:53SuccessSuccessSuccessSuccess
cs00000001_00102:57:10SuccessSuccessSuccessSuccess6:16:17SuccessSuccessSuccessSuccess
cs00000001_00113:35:20SuccessSuccessSuccessSuccess6:25:58SuccessSuccessSuccessSuccess
cs00000001_00123:37:20SuccessSuccessSuccessSuccess6:48:33SuccessSuccessSuccessSuccess
cs00000001_00133:34:23SuccessSuccessSuccessSuccess6:47:37SuccessSuccessSuccessSuccess
cs00000001_00143:48:25SuccessSuccessSuccessSuccess6:49:36SuccessSuccessSuccessSuccess
cs00000001_00153:47:25SuccessSuccessSuccessSuccess6:46:31SuccessSuccessSuccessSuccess
cs00000001_00163:47:25SuccessSuccessSuccessSuccess6:49:23SuccessSuccessSuccessSuccess
cs00000001_00173:36:27SuccessSuccessSuccessSuccess6:51:49SuccessSuccessSuccessSuccess
cs00000001_00183:01:12SuccessSuccessSuccessSuccess6:31:28SuccessSuccessSuccessSuccess
cs00000001_00193:46:49SuccessSuccessSuccessSuccess6:29:45SuccessSuccessSuccessSuccess
cs00000001_0020----------
cs00000001_00212:58:25SuccessSuccessSuccessSuccess5:52:25SuccessSuccessSuccessSuccess
cs00000001_00223:44:58SuccessSuccessSuccessSuccess6:49:04SuccessSuccessSuccessSuccess
cs00000001_00233:00:47SuccessSuccessSuccessSuccess6:50:44SuccessSuccessSuccessSuccess
cs00000001_00242:58:20SuccessSuccessSuccessSuccess5:51:44SuccessSuccessSuccessSuccess
cs00000001_00253:45:31SuccessSuccessSuccessSuccess5:51:54SuccessSuccessSuccessSuccess
cs00000001_00262:59:31SuccessSuccessSuccessSuccess6:54:53SuccessSuccessSuccessSuccess
cs00000001_00273:44:23SuccessSuccessSuccessSuccess6:30:05SuccessSuccessSuccessSuccess
cs00000001_00283:33:36SuccessSuccessSuccessSuccess6:54:06SuccessSuccessSuccessSuccess
cs00000001_00292:59:34SuccessSuccessSuccessSuccess6:54:57SuccessSuccessSuccessSuccess
cs00000001_00302:57:58SuccessSuccessSuccessSuccess6:29:03SuccessSuccessSuccessSuccess
cs00000001_00313:32:05SuccessSuccessSuccessSuccess5:52:42SuccessSuccessSuccessSuccess
cs00000001_0032




6:46:42SuccessSuccessSuccessSuccess
cs00000001_0033




6:46:17SuccessSuccessSuccessSuccess
cs00000001_0034




6:53:40SuccessSuccessSuccessSuccess
cs00000001_0035




6:27:10SuccessSuccessSuccessSuccess
cs00000001_0036




6:52:56SuccessSuccessSuccessSuccess
cs00000001_0037




5:53:08SuccessSuccessSuccessSuccess
cs00000001_0038




6:51:47SuccessSuccessSuccessSuccess
cs00000001_0039




6:43:38SuccessSuccessSuccessSuccess
cs00000001_0040




6:50:57SuccessSuccessSuccessSuccess
cs00000001_0041




6:50:25SuccessSuccessSuccessSuccess
cs00000001_0042




5:51:07SuccessSuccessSuccessSuccess
cs00000001_0043




6:49:32SuccessSuccessSuccessSuccess
cs00000001_0044




6:24:14SuccessSuccessSuccessSuccess
cs00000001_0045




5:50:48SuccessSuccessSuccessSuccess
cs00000001_0046




6:24:16SuccessSuccessSuccessSuccess
cs00000001_0047




6:48:19SuccessSuccessSuccessSuccess
cs00000001_0048




5:49:26SuccessSuccessSuccessSuccess
cs00000001_0049




5:49:01SuccessSuccessSuccessSuccess
cs00000001_0050




6:39:57SuccessSuccessSuccessSuccess
cs00000001_0051




6:22:53SuccessSuccessSuccessSuccess
cs00000001_0052




6:21:09SuccessSuccessSuccessSuccess
cs00000001_0053




6:37:53SuccessSuccessSuccessSuccess
cs00000001_0054




6:37:42SuccessSuccessSuccessSuccess
cs00000001_0055




6:21:08SuccessSuccessSuccessSuccess
cs00000001_0056




6:36:46SuccessSuccessSuccessSuccess
cs00000001_0057




6:19:53SuccessSuccessSuccessSuccess
cs00000001_00583:07:29SuccessSuccessSuccessSuccess6:43:31SuccessSuccessSuccessSuccess
cs00000001_0059




6:35:42SuccessSuccessSuccessSuccess
cs00000001_0060




6:42:28SuccessSuccessSuccessSuccess
cs00000001_0061




5:44:17SuccessSuccessSuccessSuccess
cs00000001_0062




5:45:11SuccessSuccessSuccessSuccess



FYR 30errors
CICO_TC_Check-In Controller22540
CICO_TC_Check-Out Controller40040
CSI_TC:Share local instance159210
DE_Exporting MARC Bib records custom workflow491950
DE_Exporting MARC Bib records workflow551580
EVA_TC: View Account4510.02%
ILR_TC: Create ILR14730
MSF_TC: mod search by auth query4980
MSF_TC: mod search by boolean query1500
MSF_TC: mod search by contributors3660
MSF_TC: mod search by filter query2620
MSF_TC: mod search by keyword query2610
MSF_TC: mod search by subject query4250
MSF_TC: mod search by title query10270
OPIH_/oai/records13870
RTAC_TC: edge-rtac21760
SDIC_Single Record Import (Create)216840
SDIU_Single Record Import (Update)451740
ULR_TC: Users loan Renewal Transaction30780
TOTAL3090

Test №9 Fiscal year rollover (60 tenants)


FYR30 tenants



60 tenantsordersRolloverStatusoverallRolloverStatusfinancialRolloverStatus
budgetsClosingRolloverStatus
cs00000001_0001




-



cs00000001_00022:54:30SuccessSuccessSuccessSuccess6:20:54SuccessSuccessSuccessSuccess
cs00000001_00033:37:00SuccessSuccessSuccessSuccess6:28:36SuccessSuccessSuccessSuccess
cs00000001_00042:53:22SuccessSuccessSuccessSuccess5:16:45SuccessSuccessSuccessSuccess
cs00000001_00053:45:51SuccessSuccessSuccessSuccess6:09:05SuccessSuccessSuccessSuccess
cs00000001_00062:55:25SuccessSuccessSuccessSuccess6:30:16SuccessSuccessSuccessSuccess
cs00000001_00070:00:00Not StartedIn ProgressIn ProgressSuccess5:19:39SuccessSuccessSuccessSuccess
cs00000001_00083:36:40SuccessSuccessSuccessSuccess6:14:02SuccessSuccessSuccessSuccess
cs00000001_00092:56:24SuccessSuccessSuccessSuccess6:32:53SuccessSuccessSuccessSuccess
cs00000001_00102:57:10SuccessSuccessSuccessSuccess6:16:17SuccessSuccessSuccessSuccess
cs00000001_00113:35:20SuccessSuccessSuccessSuccess6:25:58SuccessSuccessSuccessSuccess
cs00000001_00123:37:20SuccessSuccessSuccessSuccess6:48:33SuccessSuccessSuccessSuccess
cs00000001_00133:34:23SuccessSuccessSuccessSuccess6:47:37SuccessSuccessSuccessSuccess
cs00000001_00143:48:25SuccessSuccessSuccessSuccess6:49:36SuccessSuccessSuccessSuccess
cs00000001_00153:47:25SuccessSuccessSuccessSuccess6:46:31SuccessSuccessSuccessSuccess
cs00000001_00163:47:25SuccessSuccessSuccessSuccess6:49:23SuccessSuccessSuccessSuccess
cs00000001_00173:36:27SuccessSuccessSuccessSuccess6:51:49SuccessSuccessSuccessSuccess
cs00000001_00183:01:12SuccessSuccessSuccessSuccess6:31:28SuccessSuccessSuccessSuccess
cs00000001_00193:46:49SuccessSuccessSuccessSuccess6:29:45SuccessSuccessSuccessSuccess
cs00000001_0020----------
cs00000001_00212:58:25SuccessSuccessSuccessSuccess5:52:25SuccessSuccessSuccessSuccess
cs00000001_00223:44:58SuccessSuccessSuccessSuccess6:49:04SuccessSuccessSuccessSuccess
cs00000001_00233:00:47SuccessSuccessSuccessSuccess6:50:44SuccessSuccessSuccessSuccess
cs00000001_00242:58:20SuccessSuccessSuccessSuccess5:51:44SuccessSuccessSuccessSuccess
cs00000001_00253:45:31SuccessSuccessSuccessSuccess5:51:54SuccessSuccessSuccessSuccess
cs00000001_00262:59:31SuccessSuccessSuccessSuccess6:54:53SuccessSuccessSuccessSuccess
cs00000001_00273:44:23SuccessSuccessSuccessSuccess6:30:05SuccessSuccessSuccessSuccess
cs00000001_00283:33:36SuccessSuccessSuccessSuccess6:54:06SuccessSuccessSuccessSuccess
cs00000001_00292:59:34SuccessSuccessSuccessSuccess6:54:57SuccessSuccessSuccessSuccess
cs00000001_00302:57:58SuccessSuccessSuccessSuccess6:29:03SuccessSuccessSuccessSuccess
cs00000001_00313:32:05SuccessSuccessSuccessSuccess5:52:42SuccessSuccessSuccessSuccess
cs00000001_0032




6:46:42SuccessSuccessSuccessSuccess
cs00000001_0033




6:46:17SuccessSuccessSuccessSuccess
cs00000001_0034




6:53:40SuccessSuccessSuccessSuccess
cs00000001_0035




6:27:10SuccessSuccessSuccessSuccess
cs00000001_0036




6:52:56SuccessSuccessSuccessSuccess
cs00000001_0037




5:53:08SuccessSuccessSuccessSuccess
cs00000001_0038




6:51:47SuccessSuccessSuccessSuccess
cs00000001_0039




6:43:38SuccessSuccessSuccessSuccess
cs00000001_0040




6:50:57SuccessSuccessSuccessSuccess
cs00000001_0041




6:50:25SuccessSuccessSuccessSuccess
cs00000001_0042




5:51:07SuccessSuccessSuccessSuccess
cs00000001_0043




6:49:32SuccessSuccessSuccessSuccess
cs00000001_0044




6:24:14SuccessSuccessSuccessSuccess
cs00000001_0045




5:50:48SuccessSuccessSuccessSuccess
cs00000001_0046




6:24:16SuccessSuccessSuccessSuccess
cs00000001_0047




6:48:19SuccessSuccessSuccessSuccess
cs00000001_0048




5:49:26SuccessSuccessSuccessSuccess
cs00000001_0049




5:49:01SuccessSuccessSuccessSuccess
cs00000001_0050




6:39:57SuccessSuccessSuccessSuccess
cs00000001_0051




6:22:53SuccessSuccessSuccessSuccess
cs00000001_0052




6:21:09SuccessSuccessSuccessSuccess
cs00000001_0053




6:37:53SuccessSuccessSuccessSuccess
cs00000001_0054




6:37:42SuccessSuccessSuccessSuccess
cs00000001_0055




6:21:08SuccessSuccessSuccessSuccess
cs00000001_0056




6:36:46SuccessSuccessSuccessSuccess
cs00000001_0057




6:19:53SuccessSuccessSuccessSuccess
cs00000001_00583:07:29SuccessSuccessSuccessSuccess6:43:31SuccessSuccessSuccessSuccess
cs00000001_0059




6:35:42SuccessSuccessSuccessSuccess
cs00000001_0060




6:42:28SuccessSuccessSuccessSuccess
cs00000001_0061




5:44:17SuccessSuccessSuccessSuccess
cs00000001_0062




5:45:11SuccessSuccessSuccessSuccess



FYR 60errors
CICO_TC_Check-In Controller23100
CICO_TC_Check-Out Controller40650
CSI_TC:Share local instance16022
0
DE_Exporting MARC Bib records custom workflow642820
DE_Exporting MARC Bib records workflow589080
EVA_TC: View Account4790.05%
ILR_TC: Create ILR15610
MSF_TC: mod search by auth query5160
MSF_TC: mod search by boolean query1540
MSF_TC: mod search by contributors3670
MSF_TC: mod search by filter query2660
MSF_TC: mod search by keyword query2630
MSF_TC: mod search by subject query4280
MSF_TC: mod search by title query10490
OPIH_/oai/records12630
RTAC_TC: edge-rtac22450
SDIC_Single Record Import (Create)844630.27%
SDIU_Single Record Import (Update)1747800.12%
ULR_TC: Users loan Renewal Transaction10220
TOTAL4000

...

PTF - environment mcpt

  • 14 m6g.2xlarge EC2 instances located in US East (N. Virginia)us-east-1
  • 1 database instance, writer

    one of

    NameMemory GIBvCPUs

    db.r6g.4xlarge

    128 GiB16 vCPUs
    db.r6g.8xlarge256 GiB32 vCPUs


  • Amazon OpenSearch Service: ptf-test
    • Data nodes
      Instance type-r6g.2xlarge.search
      Number of nodes-4
    • Dedicated master nodes
      Instance type-r6g.large.search
      Number of nodes-3
  • MSK ptf-mobius-testing2
    • 2 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=2

...

Modules memory and CPU parameters:

db.r6g.4xlarge

Module
mcpt-pvt
Thu May 16 07:29:57 UTC 2024
Task Def. RevisionModule VersionTask CountMem Hard LimitMem Soft limitCPU unitsXmxMetaspaceSizeMaxMetaspaceSize
mod-remote-storage18579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-remote-storage:3.0.124920447210243960512512
mod-ncip12579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-ncip:1.14.42102489612876888128
mod-finance-storage14579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-finance-storage:8.5.041024896102470088128
mod-agreements17579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-agreements:6.0.2015921488128000
mod-ebsconet12579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-ebsconet:2.1.1212481024128700128256
edge-sip212579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/edge-sip2:3.1.12102489612876888128
mod-consortia18579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-consortia:1.0.325136477610244416384512
mod-organizations12579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-organizations:1.8.02102489612876888128
mod-settings17579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-settings:1.0.22102489620076888128
edge-dematic15579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/edge-dematic:2.1.11102489612876888128
mod-data-import15579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-data-import:3.0.71204818442561292384512
mod-search18579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-search:3.0.5425922480204814405121024
mod-tags12579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-tags:2.1.02102489612876888128
mod-authtoken22579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-authtoken:2.14.1614401152102492288128
edge-courses12579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/edge-courses:1.3.02102489612876888128
edge-inventory6579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/edge-inventory:1.4.02102489612876888128
mod-inventory-update12579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-inventory-update:3.2.12102489612876888128
mod-notify12579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-notify:3.1.02102489612876888128
mod-configuration13579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-configuration:5.9.24102489612876888128
mod-orders-storage13579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-orders-storage:13.6.04102489651270088128
edge-caiasoft12579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/edge-caiasoft:2.1.02102489612876888128
mod-login-saml15579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-login-saml:2.7.22102489612876888128
mod-erm-usage-harvester7579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-erm-usage-harvester:4.4.12102489612876888128
mod-password-validator12579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-password-validator:3.1.0214401298128768384512
mod-gobi13579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-gobi:2.7.12102489612876888128
mod-licenses15579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-licenses:5.0.22248023121281792384512
mod-fqm-manager12579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-fqm-manager:1.0.32102489612876888128
edge-dcb9579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/edge-dcb:1.0.22102489612876888128
mod-bulk-operations18579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-bulk-operations:1.1.923072260010241536384512
mod-graphql12579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-graphql:1.12.00102489612876888128
mod-finance12579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-finance:4.8.04102489612876888128
mod-erm-usage7579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-erm-usage:4.6.02102489612876888128
mod-lists15579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-lists:1.0.52102489612876888128
mod-copycat12579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-copycat:1.5.02102489612876888128
mod-permissions26579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-permissions:6.4.04168415445121024384512
mod-entities-links17579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-entities-links:2.0.4225922480400144001024
pub-edge6579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/pub-edge:2023.06.142102489612876800
mod-orders13579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-orders:12.7.142048144010241024384512
edge-patron14579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/edge-patron:5.0.0.1582102489625676888128
edge-ncip12579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/edge-ncip:1.9.22102489612876888128
mod-users-bl12579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-users-bl:7.6.021440115251292288128
edge-ea-data-export7579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/edge-ea-data-export:4.1.02102489612876888128
mod-invoice13579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-invoice:5.7.241440115251292288128
mod-inventory-storage19579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-inventory-storage:27.0.444096369020483076384512
mod-user-import12579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-user-import:3.8.02102489612876888128
mod-sender12579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-sender:1.11.02102489612876888128
edge-oai-pmh15579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/edge-oai-pmh:2.7.121512136010241440384512
mod-data-export-worker15579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-data-export-worker:3.1.223072280010242048384512
mod-rtac12579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-rtac:3.5.02102489612876888128
mod-task-list7579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-task-list:1.9.22102489612876888128
mod-circulation-storage20579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-circulation-storage:17.1.742880259215361814384512
mod-calendar13579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-calendar:2.5.02102489612876888128
mod-source-record-storage21579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-source-record-storage:5.7.525600500020483500384512
mod-event-config12579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-event-config:2.6.02102489612876888128
mod-courses12579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-courses:1.4.82102489612876888128
mod-circulation-item9579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-circulation-item:1.0.02102489612876888128
mod-inventory19579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-inventory:20.1.642880259210241814384512
mod-email12579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-email:1.16.02102489612876888128
mod-circulation20579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-circulation:24.0.1142880259215361814384512
mod-pubsub16579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-pubsub:2.11.32153614401024922384512
mod-di-converter-storage17579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-di-converter-storage:2.1.52102489612876888128
edge-rtac15579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/edge-rtac:2.6.22102489612876888128
edge-orders15579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/edge-orders:2.9.12102489612876888128
mod-template-engine12579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-template-engine:1.19.12102489612876888128
mod-users17579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-users:19.2.24102489612876888128
mod-patron-blocks14579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-patron-blocks:1.9.021024896102476888128
mod-audit13579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-audit:2.8.02102489612876888128
edge-fqm13579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/edge-fqm:1.0.12102489612876888128
mod-source-record-manager18579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-source-record-manager:3.7.725600500020483500384512
nginx-edge6579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/nginx-edge:2023.06.1421024896128000
mod-quick-marc16579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-quick-marc:5.0.11228821761281664384512
nginx-okapi9579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/nginx-okapi:2023.06.14210248961536000
okapi-b8579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/okapi:5.1.23168414401536922384512
mod-feesfines12579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-feesfines:19.0.02102489612876888128
mod-invoice-storage13579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-invoice-storage:5.7.041872153610241024384512
edge-users6579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/edge-users:1.2.02102489612876888128
mod-dcb9579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-dcb:1.0.02102489612876888128
mod-service-interaction15579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-service-interaction:3.0.22204818442561290384512
mod-data-export17579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-data-export:4.8.711024896102476888128
mod-patron12579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-patron:6.0.04102489612876888128
mod-oai-pmh16579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-oai-pmh:3.12.824096369020483076384512
edge-connexion12579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/edge-connexion:1.1.12102489612876888128
mod-kb-ebsco-java12579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-kb-ebsco-java:4.0.02102489612876888128
mod-notes13579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-notes:5.1.021024896128952384512
mod-data-export-spring15579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-data-export-spring:3.0.21204818442561536384512
mod-login12579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-login:7.10.12144012981024768384512
mod-organizations-storage13579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-organizations-storage:4.6.04102489612876888128
pub-okapi6579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/pub-okapi:2023.06.142102489612876800
edge-erm7579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/edge-erm:1.0.02102489612876888128
mod-eusage-reports7579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-eusage-reports:2.0.02102489612876888128

...

MOBIUS Tests: scenarios were started by carrier.io or from load generator instance in the same (us-east-1) AWS region. 

The database contains five times more generated data for large tenant IDs compared to small tenant IDs. The table below displays the average count of generated instances and items for both small and large tenants..

tenantinstancesitems
Small84754103137
Large416176543428

The attached file contains full info about generated data per tenant.

  • large tenants IDs = 0042, 0024, 0051, 0006

...

At the initial stage of testing, there were numerous errors from various workflows, most notably those involving search. While investigating the cause of the errors, it was found that there was insufficient CPU capacity (100% utilization) on the data nodes of the OpenSearch cluster. Initially, testing was done with r6g.large.search, then increased to r6g.4xlarge.search, but it was too large and only utilized 40% CPU. Therefore, it was downsized to r6g.2xlarge.search, with the number of containers (tasks) increased to 4 for mod-search.

However, after identifying the issue related to search, a problem with the database persisted, such as OOM (Out of Memory). Two options were tested to address this issue: increasing the database size to db.r6g.8xlarge and adjusting the shared_buffers configuration to SUM({DBInstanceClassMemory/24076},-50003) for the size of db.r6g.4xlarge. Both tests showed promising results; however, in both cases, there were errors related to an insufficient number of connections to the database in the logs ("remaining connection slots are reserved for non-replication superuser and rds_superuser connections"). To address this, the max_connections configuration was set to LEAST({DBInstanceClassMemory/9531392},9000) for both sizes of the database, increasing the upper limit of connections to the database to 9000.

All of these measures helped to eliminate errors, but response times remained high, especially for check-in and check-out. To improve response time, we increased the number of containers for mod-authtoken to 4, which yielded very good results. Additionally, we improved response times for all circulation workflows by setting 4 containers for each: mod-permissions, mod-patron, mod-inventory, mod-inventory-storage, mod-circulation, mod-circulation-storage


To improve the performance of acquisition workflows, the number of containers for mod-order, mod-order-storage, mod-invoice, mod-invoice-storage, and mod-users was increased to 4. However, this resulted in significantly increased load on mod-authtoken, causing other workflows to slow down again. Therefore, the number of containers for mod-authtoken was increased to 6 to alleviate the load.
The next issue we're facing is the operation of the "Receiving: downloading" workflow. Due to its design, it's processed by the frontend and sends frequent requests to the database in a very large quantity. When under a load of 70% of tenants simultaneously, this causes significant degradation in the performance of all other workflows. Therefore, results are provided in tables with additional tests conducted with this workflow and without it. The CPU usage by the database increases by more than 25% with this workflow and reaches 99%.