Skip to end of banner
Go to start of banner

PTF - Performance Instance Resources Optimization - MCPT

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 40 Next »

Overview

  • The primary objective of testing was to evaluate the performance of the Baseline MCPT Environment configuration while attempting to optimize costs by adjusting instance types and reducing the number of instances. The tests were designed to compare the performance outcomes across different configurations, including variations in instance types and counts within multiple Auto Scaling Groups (ASGs). By systematically modifying these variables, the goal was to maintain or improve the performance observed in the baseline configuration while achieving cost efficiency.

PERF-961 - Getting issue details... STATUS  

Summary

  • Through a series of experiments involving different placement strategies, instance types, and total instance counts, we found that the performance remained consistent when using these two configuration: 
    • six c7g.large instances (three dedicated to the okapi service and three allocated to mod-courses, mod-sender, mod-tasks-list, mod-gobi, edge-dematic, mod-erm-usage, mod-eusage-reports, mod-notify, and mod-data-import services) alongside ten r7g.xlarge instances for all other services, with the CPU parameter set to 2 for all services.
    • three c7g.large instances dedicated to the okapi service alongside five r7g.2xlarge instances for all other services, with the CPU parameter set to 2 for all services.
  • Notably, both environment configuration offers a 40% cost reduction compared to the existing setup, making it a more economical option without compromising on performance.
  • Configurations with three c7g.large instances for the okapi service and five r7g.2xlarge instances for all other services show the best performance across all experiments. So it will be more tests in this ticket.
  • Tests had 100% errors count for AIE_TC: Create Invoices, AIE_TC: Invoices Approve, AIE_TC: Paying Invoices, TC: Receiving-an-Order-Line, Unreceiving-a-Piece and Unreceiving-a-Piece Workflows because data was not regenerated.  

Test Runs

Test #DescriptionStatus
Test 1CPU=2 was set for all services, used two autoscaling groups, 1st with 3 Instance Type: c7g.large for okapi service and 10 Instance Type: r7g.xlarge for others services. Completed
Test 2CPU=2 was set for all services, used two autoscaling groups, 1st with 3 Instance Type: c7g.large for okapi service and 10 Instance Type: m6g.2xlarge for others modules. Completed
Test 3CPU=2 was set for all services, used two autoscaling groups, 1st with 3 Instance Type: c7g.large for okapi service and 10 Instance Type: m6g.2xlarge for others services (Repeat Test 2).Completed
Test 4CPU=2 was set for all modules, used two autoscaling groups, 1st with 6 Instance Type: c7g.large, 3 of them for okapi service and other 3 for mod-cources, mod-sender, mod-tasks-list, mod-gobi, edge-dematic, mod-erm-usage, mod-eusage-reports, mod-notify, mod-data-import services and 10 Instance Type: r7g.xlarge for others modules.Completed
Test 5CPU=2 was set for all modules, used two autoscaling groups, 1st with 6 Instance Type: c7g.large, 3 of them for okapi service and other 3 for mod-cources, mod-sender, mod-tasks-list, mod-gobi, edge-dematic, mod-erm-usage, mod-eusage-reports, mod-notify, mod-data-import services and 10 Instance Type: r7g.xlarge for others modules (Repeat Test 4).Completed
Test 6CPU=2 was set for all modules, used two autoscaling groups, 1st with 6 Instance Type: c7g.large, 3 of them for okapi service and other 3 for mod-cources, mod-sender, mod-tasks-list, mod-gobi, edge-dematic, mod-erm-usage, mod-eusage-reports, mod-notify, mod-data-import services and 10 Instance Type: r7g.xlarge for others modules. Test was run without DE_Exporting MARC Bib records custom workflow, DE_Exporting MARC Bib records workflow, and OPIH_/oai/records workflow workflows.Completed
Test 7CPU=2 was set for all modules, used two autoscaling groups, 1st with 6 Instance Type: c7g.large, 3 of them for okapi service and other 3 for mod-cources, mod-sender, mod-tasks-list, mod-gobi, edge-dematic, mod-erm-usage, mod-eusage-reports, mod-notify, mod-data-import services and 10 Instance Type: r7g.xlarge for others modules. Test was run without DE_Exporting MARC Bib records custom workflow, DE_Exporting MARC Bib records workflow, and OPIH_/oai/records workflow workflows (Repeat Test 6).Completed
Test 8CPU=2 was set for all modules, used two autoscaling groups, 1st with 6 Instance Type: c7g.large, 3 of them for okapi service and other 3 for mod-cources, mod-sender, mod-tasks-list, mod-gobi, edge-dematic, mod-erm-usage, mod-eusage-reports, mod-notify, mod-data-import services and 10 Instance Type: r7g.xlarge for others modules. Completed
Test 9CPU=2 was set for all modules, used two autoscaling groups, 1st with 6 Instance Type: c7g.large, 3 of them for okapi service and other 3 for mod-cources, mod-sender, mod-tasks-list, mod-gobi, edge-dematic, mod-erm-usage, mod-eusage-reports, mod-notify, mod-data-import services and 10 Instance Type: r7g.xlarge for others modules. Test was run without DE_Exporting MARC Bib records custom workflow, DE_Exporting MARC Bib records workflow, and OPIH_/oai/records workflow workflows (Repeat Test 7 after Terminate Instances r7g.xlarge).Completed
Test 10CPU=2 was set for all modules, used two autoscaling groups, 1st with 6 Instance Type: c7g.large, 3 of them for okapi service and other 3 for mod-cources, mod-sender, mod-tasks-list, mod-gobi, edge-dematic, mod-erm-usage, mod-eusage-reports, mod-notify, mod-data-import services and 10 Instance Type: r7g.xlarge for others modules (Repeat Test 8 after Terminate Instances r7g.xlarge).Completed
Test 11CPU=2 was set for all services, used two autoscaling groups, 1st with 3 Instance Type: c7g.large for okapi service and 11 Instance Type: r7g.xlarge for others services. Completed
Test 12CPU=2 was set for all services, used two autoscaling groups, 1st with 3 Instance Type: c7g.large for okapi service and 11 Instance Type: r7g.xlarge for others services (Repeat Test 11).Completed
Test 13CPU=2 was set for all services, used two autoscaling groups, 1st with 3 Instance Type: c7g.large for okapi service and 11 Instance Type: r7g.xlarge for others services (Repeat Test 11).Completed
Test 14CPU=2 was set for all services, used two autoscaling groups, 1st with 3 Instance Type: c7g.large for okapi service and 11 Instance Type: r7g.xlarge for others services (Repeat Test 11 after terminate 11 instances).Completed
Test 15CPU=2 was set for all services, used two autoscaling groups, 1st with 3 Instance Type: c7g.large for okapi and mod-authtoken services and 11 Instance Type: r7g.xlarge for others services. Completed
Test 16CPU=2 was set for all services, used two autoscaling groups, 1st with 3 Instance Type: c7g.large for okapi service and Instance Type: r7g.2xlarge for others services. Completed
Test 17CPU=2 was set for all services, used two autoscaling groups, 1st with 3 Instance Type: c7g.large for okapi service and Instance Type: r7g.2xlarge for others services (Repeat Test 16). Completed

Test Results

This table contains durations for all Workflows. 

WorkflowsTest 1

Test 2

Test 3

(repeat 2)

Test 4

Test 5

(repeat 4)

Test 6
 

Test 7

(repeat 6 )

Test 8

Test 9

(repeat 7 after Terminate)

Test 10

(repeat 8 after Terminate)

Test 11

 
Test 12
 
Test 13
 

Test 14

(Terminate)

Test 15Test 16 Test 17 

Average response time (milliseconds)ErrorsAverage response time (milliseconds)ErrorsAverage response time (milliseconds)ErrorsAverage response time (milliseconds)ErrorsAverage response time (milliseconds)ErrorsAverage response time (milliseconds)ErrorsAverage response time (milliseconds)ErrorsAverage response time (milliseconds)ErrorsAverage response time (milliseconds)ErrorsAverage response time (milliseconds)ErrorsAverage response time (milliseconds)ErrorsAverage response time (milliseconds)ErrorsAverage response time (milliseconds)ErrorsAverage response time (milliseconds)ErrorsAverage response time (milliseconds)ErrorsAverage response time (milliseconds)ErrorsAverage response time (milliseconds)Errors
AIE_TC: Create Invoices10227100%7425100%7645100.00%8563100.00%8132100.00%7383100.00%7575100.00%7359100.00%10061100.00%11269100.00%8607100%11352100%8293100%9397100%10687100%8138100%7063100%
AIE_TC: Invoices Approve4649100%3281100%3252100.00%3442100.00%3175100.00%3081100.00%2966100.00%3100100.00%5464100.00%7132100.00%3438100%4792100%3506100%4052100%5297100%3054100%2873100%
AIE_TC: Paying Invoices5686100%3375100%3481100.00%3439100.00%3250100.00%3079100.00%2948100.00%3115100.00%4504100.00%4245100.00%3580100%4635100%3548100%4387100%6265100%3093100%2811100%
CICO_TC_Check-In Controller38280%23500%24460.00%23250.00%22590.00%20920.00%20460.00%21220.00%31130.00%29650.00%25080%31620%23960%28960%38170%21540%19020%
CICO_TC_Check-Out Controller59600%40850%42730.00%41290.00%39050.00%37690.00%35490.00%38160.00%51670.00%52240.00%43070%59541%44060%51000%67880%37210%34360%
CSI_TC:Share local instance1304519%160810%160910.00%1310518.63%1304618.98%160870.00%1311918.66%160710.00%160760.00%160580.00%43070%1326118%160540%1312319%160710%1307619%160050%
DE_Exporting MARC Bib records custom workflow534840%1013240%468600.00%971690.00%1600220.00%



442920.00%

723720.00%495150%17913638%648270%1273730%632060%849000%694460%
DE_Exporting MARC Bib records workflow427370%922130%648970.00%777470.00%2656510.00%



376220.00%

705570.00%456400%18790941%630850%1594530%842200%728050%699050%
EVA_TC: View Account8220%5780%5820.00%5780.00%5530.00%5230.00%5060.00%5340.00%35390.00%27090.00%6020%15132%5270%6700%9670%5030%4800%
ILR_TC: Create ILR19790%16050%16450.00%15950.00%15230.00%14360.00%13940.00%15280.00%31470.00%31220.00%15760%21240%17080%19280%26430%14960%12980%
MSF_TC: mod search by auth query222726%16720%8240.00%9332.15%6860.00%6860.00%6800.00%6920.00%6930.00%6220.00%7700%12240%6800%8100%10790%6660%6690%
MSF_TC: mod search by boolean query4482%4060%2010.00%2570.41%1720.00%1670.00%1670.00%1680.00%1670.00%1560.00%1930%2540%1630%2060%2850%1590%1630%
MSF_TC: mod search by contributors8820%9820%4950.00%5661.25%4070.00%4150.00%4020.00%4060.00%3940.00%3770.00%4410%5100%3990%4800%6050%3930%4060%
MSF_TC: mod search by filter query6492%6030%3440.00%3580.23%2850.00%2860.00%2850.00%2910.00%2740.00%2670.00%3150%3430%2880%3310%4070%2850%2850%
MSF_TC: mod search by keyword query6040%5960%3450.00%3740.41%2900.00%2880.00%2860.00%2920.00%2740.00%2630.00%3160%3430%2830%3290%4020%2840%2870%
MSF_TC: mod search by subject query9301%9320%5150.00%5980.80%4200.00%4300.00%4190.00%4250.00%4080.00%3900.00%4560%5630%4160%4850%5880%4130%4170%
MSF_TC: mod search by title query23810%19650%12600.00%13620.49%10590.00%10610.00%10540.00%10640.00%10260.00%10120.00%10930%11570%10620%11350%12480%10640%10810%
OPIH_/oai/records50860%32480%32540.00%51930.00%30690.00%



41130.00%

24510.00%62670%48850%8820%30260%9430%29800%9400%
POO_TC: Add Order Lines601931%533410%545070.00%550080.00%546460.00%528060.00%521150.00%540830.00%494750.00%446150.00%565550%654362%592070%597320%621160%556610%530520%
POO_TC: Approve Order452940%417500%419350.00%424450.00%424860.00%415690.00%411940.00%420340.00%373100.00%339820.00%442550%461330%461890%452380%473870%425640%415070%
POO_TC Create Order343050%305830%309650.00%318530.00%314400.00%309700.00%303920.00%305750.00%280810.00%254510.00%326010%422671%330580%339960%228280%317450%304790%
RTAC_TC: edge-rtac40500%22280%21840.00%36650.00%37870.00%19780.00%38880.00%19800.00%92970.00%100410.00%38680%83480%21150%38540%22360%37290%20050%
SDIC_Single Record Import (Create)1478319%118820%114410.00%1386818.39%1334518.82%109640.00%1294918.23%110010.00%120150.00%115560.00%1384818%1623618%125380%1448218%337210%1335718%107020%
SDIU_Single Record Import (Update)223474%196850%192980.00%195040.00%37870.00%188690.00%187060.00%187480.00%217450.00%208290.00%197410%233763%207410%209330%228280%194200%183300%
TC: Receiving-an-Order-Line50466100%44954100%46684100.00%46396100.00%45548100.00%45629100.00%44356100.00%45106100.00%40982100.00%36920100.00%47570100%53302100%50146100%49516100%52266100%46404100%44880100%
Serials-Receiving-Workflow51572100%46047100%47460100.00%48142100.00%47661100.00%45645100.00%45404100.00%46299100.00%42105100.00%38241100.00%49262100%61545100%50285100%50943100%52493100%48123100%45827100%
Unreceiving-a-Piece9422100%8028100%8303100.00%8247100.00%7865100.00%7897100.00%7748100.00%7887100.00%7468100.00%6812100.00%8438100%9945100%8544100%8829100%9368100%8058100%7581100%
ULR_TC: Users loan Renewal Transaction40270%31980%32750.00%30600.00%29570.00%28140.00%28100.00%29690.00%446320.00%886020.00%31970%50801%34060%35830%49550%28650%26260%

Comparison

This graph shows the durations of all workflows compared between the best test result from Test â„–8, MCPT Basile configuration with 14 instances m6g.2xlarge and result from mcpt tunning report.

Average Case workflows: Part 1.

 

Average Case workflows: Part 2.


Average Case workflowsPart 3.


Test â„–1

Introduction: The Baseline MCPT Environment configuration was applied, and CPU=2 was set for all services, used two autoscaling groups, 1st with 3 Instance Type: c7g.large for okapi service and 10 Instance Type: r7g.xlarge for others services. Fixed Load (average case) MOBIUS test was run.

Objective: The objective of test was to evaluate the performance of the MCPT environment by applying the baseline configuration, while adjusting the CPU allocation for all services to 2 vCPUs. Additionally, the test aimed to assess the impact of using two distinct autoscaling groups with different instance types: c7g.large for the Okapi service and r7g.xlarge for all other services. By running the Fixed Load (average case) MOBIUS test, the goal was to determine if this modified configuration could achieve similar or improved performance compared to the baseline, while potentially optimizing resource allocation and cost.

Results: Almost all workflows shows significant performance degradation.

Instance CPU Utilization

Service CPU Utilization

Here we can see that okapi modules used 42k% CPU power parameter CPU=2 for module.

Service Memory Utilization

Here we can't see any sign of memory leaks on every module. Memory shows stable trend.


Kafka metrics


DB CPU Utilization

DB CPU was 99% average with ERW: Exporting Receiving Information.

DB Connections

Max number of DB connections was 5600 in maximum.

Test â„–2

Introduction: The Baseline MCPT Environment configuration was applied, and CPU=2 was set for all services, used two autoscaling groups, 1st with 3 Instance Type: c7g.large for okapi service and 10 Instance Type: m6g.2xlarge for others modules. Fixed Load (average case) MOBIUS test was run.

Objective: The objective of this test was to maintain the use of m6g.2xlarge instances for the main modules, as in the Baseline configuration, while introducing a second autoscaling group with c7g.large instances specifically for the Okapi service. This setup aims to explore the performance and cost-effectiveness of separating the Okapi service onto a smaller instance type while keeping the main services on the larger m6g.2xlarge instances.

Results: We observed nearly identical performance results in over half of the workflows compared to the Baseline configuration.

Instance CPU Utilization

Service CPU Utilization

Here we can see that okapi used 47k% of the CPU power parameter CPU=2 for module.

Service Memory Utilization

Here we can't see any sign of memory leaks on every module. Memory shows stable trend.


Kafka metrics

DB CPU Utilization

DB CPU was 99% average with ERW: Exporting Receiving Information

DB Connections

Max number of DB connections was 5710.

Test â„–3

Introduction: The Baseline MCPT Environment configuration was applied, and CPU=2 was set for all services, used two autoscaling groups, 1st with 3 Instance Type: c7g.large for okapi service and 10 Instance Type: m6g.2xlarge for others services. Fixed Load (average case) MOBIUS test was run (Repeat Test 2).

Objective: The objective of this test was to validate the consistency of performance observed in Test 2 by repeating the same configuration. 

ResultsWe observed nearly identical performance results almost for all the workflows compared to the Baseline configuration.

Instance CPU Utilization

Service CPU Utilization

Here we can see that okapi used 45k% of the CPU power of the parameter CPU=2.

Service Memory Utilization

Here we can't see any sign of memory leaks on every module. Memory shows stable trend.


Kafka metrics


DB CPU Utilization

DB CPU was 99% maximum.

DB Connections

Max number of DB connections was 5500.

Test â„–4

Introduction:  The Baseline MCPT Environment configuration was applied, and CPU=2 was set for all modules, used two autoscaling groups, 1st with 6 Instance Type: c7g.large, 3 of them for okapi service and other 3 for mod-cources, mod-sender, mod-tasks-list, mod-gobi, edge-dematic, mod-erm-usage, mod-eusage-reports, mod-notify, mod-data-import services and 10 Instance Type: r7g.xlarge for others modules. Fixed Load (average case) MOBIUS test was run.

Objective: The objective of this test was to add more services with lower activity levels to the first autoscaling group, increasing the number of c7g.large instances from 3 to 6. For the main services, r7g.xlarge instances were used with a total of 10 instances, which are more cost-effective compared to the Baseline configuration with r6g.4xlarge.

Results: We observed a better performance compared to previous test.

Instance CPU Utilization

Service CPU Utilization

Here we can see that okapi used 43k% of the CPU power of parameter CPU=2.

Service Memory Utilization

Here we can't see any sign of memory leaks on every module. Memory shows stable trend.

Kafka metrics



DB CPU Utilization

DB CPU was 99%.

DB Connections

Max number of DB connections was 5810.

DB load

                                                                                                                    

Top SQL-queries


Test â„–5

Introduction: The Baseline MCPT Environment configuration was applied, and CPU=2 was set for all modules, used two autoscaling groups, 1st with 6 Instance Type: c7g.large, 3 of them for okapi service and other 3 for mod-cources, mod-sender, mod-tasks-list, mod-gobi, edge-dematic, mod-erm-usage, mod-eusage-reports, mod-notify, mod-data-import services and 10 Instance Type: r7g.xlarge for others modules. Fixed Load (average case) MOBIUS test was run (Repeat Test 4).

Objective: The objective of this test was to validate the consistency of performance observed in Test 4 by repeating the same configuration.

Results: We confirmed performance improvements with this configuration, also a several workflows shoes better performance than in Test 4.


Instance CPU Utilization


Service CPU Utilization

Here we can see that okapi used 46k% of the CPU power of parameter CPU=2.

Service Memory Utilization

Here we can't see any sign of memory leaks on every module. Memory shows stable trend.


Kafka metrics


DB CPU Utilization

DB CPU was 99%.

DB Connections

Max number of DB connections was 5500.

DB load

Top SQL-queries

Test â„–6

Introduction: The Baseline MCPT Environment configuration was applied, and CPU=2 was set for all modules, used two autoscaling groups, 1st with 6 Instance Type: c7g.large, 3 of them for okapi service and other 3 for mod-cources, mod-sender, mod-tasks-list, mod-gobi, edge-dematic, mod-erm-usage, mod-eusage-reports, mod-notify, mod-data-import services and 10 Instance Type: r7g.xlarge for others modules. Fixed Load (average case without DE_Exporting MARC Bib records custom workflow, DE_Exporting MARC Bib records workflow, and OPIH_/oai/records workflow) MOBIUS test was run.

Objective: The goal of this test was to exclude several unstable workflows and observe whether their removal would have a noticeable impact on the performance of the remaining workflows. Specifically, by omitting the DE_Exporting MARC Bib records custom workflow, DE_Exporting MARC Bib records workflow, and OPIH_/oai/records workflow, the test aimed to assess if the stability and performance of the other workflows would improve under the same configuration.

Results: We observed minor performance improvements across almost all workflows. However, these improvements were not substantial. It appears that the observed effects are relatively small and can be attributed to a reduced overall load in the environment.

Instance CPU Utilization

Service CPU Utilization

Here we can see that okapi used 46k% of the CPU power of parameter CPU=2.

Service Memory Utilization

Here we can't see any sign of memory leaks on every module. Memory shows stable trend.

Kafka metrics


DB CPU Utilization

DB CPU was 99%.

DB Connections

Max number of DB connections was 6000.

DB load

Top SQL-queries


Test â„–7 - 8

Introduction:  

  • Test 7: The Baseline MCPT Environment configuration was applied, and CPU=2 was set for all modules, used two autoscaling groups, 1st with 6 Instance Type: c7g.large, 3 of them for okapi service and other 3 for mod-cources, mod-sender, mod-tasks-list, mod-gobi, edge-dematic, mod-erm-usage, mod-eusage-reports, mod-notify, mod-data-import services and 10 Instance Type: r7g.xlarge for others modules. Fixed Load (average case without DE_Exporting MARC Bib records custom workflow, DE_Exporting MARC Bib records workflow, and OPIH_/oai/records workflow) MOBIUS test was run (Repeat Test 6).
  • Test 8: The Baseline MCPT Environment configuration was applied, and CPU=2 was set for all modules, used two autoscaling groups, 1st with 6 Instance Type: c7g.large, 3 of them for okapi service and other 3 for mod-cources, mod-sender, mod-tasks-list, mod-gobi, edge-dematic, mod-erm-usage, mod-eusage-reports, mod-notify, mod-data-import services and 10 Instance Type: r7g.xlarge for others modules. Fixed Load (average case) MOBIUS test was run.

Objective: The objective of these tests was to validate the consistency of performance observed in Test 5 and Test 6. This was achieved by repeating the same configuration.

Results: We see performance improvements for Test 8.

Instance CPU Utilization

Service CPU Utilization

Here we can see that okapi used 48k% of the CPU power of parameter CPU=2.

Service Memory Utilization

Here we can't see any sign of memory leaks on every module. Memory shows stable trend.


Kafka metrics



DB CPU Utilization

DB CPU was 99%.

DB Connections

Max number of DB connections was 6010.

DB load

Top SQL-queries


Test â„–9 - 10

Introduction: 

  • Test 9: The Baseline MCPT Environment configuration was applied, and CPU=2 was set for all modules, used two autoscaling groups, 1st with 6 Instance Type: c7g.large, 3 of them for okapi service and other 3 for mod-cources, mod-sender, mod-tasks-list, mod-gobi, edge-dematic, mod-erm-usage, mod-eusage-reports, mod-notify, mod-data-import services and 10 Instance Type: r7g.xlarge for others modules. Fixed Load (average case without DE_Exporting MARC Bib records custom workflow, DE_Exporting MARC Bib records workflow, and OPIH_/oai/records workflow) MOBIUS test was run (Repeat Test 7 after Terminate Instances r7g.xlarge).
  • Test 10: The Baseline MCPT Environment configuration was applied, and CPU=2 was set for all modules, used two autoscaling groups, 1st with 6 Instance Type: c7g.large, 3 of them for okapi service and other 3 for mod-cources, mod-sender, mod-tasks-list, mod-gobi, edge-dematic, mod-erm-usage, mod-eusage-reports, mod-notify, mod-data-import services and 10 Instance Type: r7g.xlarge for others modules. Fixed Load (average case) MOBIUS test was run (Repeat Test 8 after Terminate Instances r7g.xlarge).

Objective: The objective of these tests was to validate the consistency of performance observed in Test 7 and Test 8. This was achieved by repeating the same configuration and applying new random task locations per instance after terminating the r7g.xlarge instances.

Results: Performance result were worse on 50% for several workflows after terminating the r7g.xlarge instances and applying new random task locations per instance.

Instance CPU Utilization

Service CPU Utilization

Here we can see that okapi used 48k% of the CPU power of parameter CPU=2.

Service Memory Utilization

Here we can't see any sign of memory leaks on every module. Memory shows stable trend.


Kafka metrics




DB CPU Utilization

DB CPU was 99%.

DB Connections

Max number of DB connections was 5150.

DB load

Top SQL-queries


Test â„–11

Introduction: The Baseline MCPT Environment configuration was applied, and CPU=2 was set for all services, used two autoscaling groups, 1st with 3 Instance Type: c7g.large for okapi service and 11 Instance Type: r7g.xlarge for others services. Fixed Load (average case) MOBIUS test was run.

Objective: The goal of this test was to replace three c7g.large instances with one additional r7g.xlarge instance for all services, while retaining three c7g.large instances specifically for the okapi service.

Results: The performance was worse compared to when we used the additional three c7g.large instances for services with smaller workloads.

Instance CPU Utilization

Service CPU Utilization

Here we can see that okapi used 45k% of the CPU power of parameter CPU=2.

Service Memory Utilization

Here we can't see any sign of memory leaks on every module. Memory shows stable trend.


Kafka metrics


DB CPU Utilization

DB CPU was 99%.

DB Connections

Max number of DB connections was 5900.

DB load

Top SQL-queries

Test â„–12 - 13

Introduction: The Baseline MCPT Environment configuration was applied, and CPU=2 was set for all services, used two autoscaling groups, 1st with 3 Instance Type: c7g.large for okapi service and 11 Instance Type: r7g.xlarge for others services. Fixed Load (average case) MOBIUS test was run.

Objective: The objective of this test was to validate the degradation of performance observed in Test 11 by repeating the same configuration.

Results: We confirmed performance degradation with this configuration.

Instance CPU Utilization

Service CPU Utilization

Here we can see that okapi used 43k% of the CPU power of parameter CPU=2.

Service Memory Utilization

Here we can't see any sign of memory leaks on every module. Memory shows stable trend.


Kafka metrics




DB CPU Utilization

DB CPU was 99%.

DB Connections

Max number of DB connections was 6200.

DB load

Top SQL-queries



Test â„–14

Introduction: The Baseline MCPT Environment configuration was applied, and CPU=2 was set for all services, used two autoscaling groups, 1st with 3 Instance Type: c7g.large for okapi service and 11 Instance Type: r7g.xlarge for others services. Fixed Load (average case) MOBIUS test was run.

Objective: The objective of this test was to validate the degradation of performance observed in Test 11 by repeating the same configuration.

Results: We confirmed performance degradation with this configuration.

Instance CPU Utilization

Service CPU Utilization

Here we can see that okapi used 45k% of the CPU power of parameter CPU=2.

Service Memory Utilization

Here we can't see any sign of memory leaks on every module. Memory shows stable trend.


Kafka metrics


DB CPU Utilization

DB CPU was 99%.

DB Connections

Max number of DB connections was 5900.

DB load

Top SQL-queries


Test â„–15

Introduction: The Baseline MCPT Environment configuration was applied, and CPU=2 was set for all services, used two autoscaling groups, 1st with 3 Instance Type: c7g.large for okapi and mod-authtoken service and 11 Instance Type: r7g.xlarge for others services. Fixed Load (average case) MOBIUS test was run.

Objective: 

Results: We confirmed performance degradation with this configuration.

Instance CPU Utilization

Service CPU Utilization

Here we can see that okapi used 38k% of the CPU power of parameter CPU=2.

Service Memory Utilization

Here we can't see any sign of memory leaks on every module. Memory shows stable trend.


Kafka metrics


DB CPU Utilization

DB CPU was 99%.

DB Connections

Max number of DB connections was 5150.

DB load

Top SQL-queries


Test â„–16 - 17

Introduction: Test 16: The Baseline MCPT Environment configuration was applied, and CPU=2 was set for all services, used two autoscaling groups, 1st with 3 Instance Type: c7g.large for okapi service and 5 Instance Type: r7g.2xlarge for others services. Fixed Load (average case) MOBIUS test was run. Test 17: Repeat Test 16 with the same environment configuration

Objective: The objective of this test was to reduce the number of instances in the main group from 10 to 5, while using higher capacity r7g.2xlarge instances instead of r7g.xlarge

Results: We observed performance improvements in Test 16 compared to Test 8, and by repeating the same configuration in Test 17, we confirmed these performance improvements.

Instance CPU Utilization

Service CPU Utilization

Here we can see that okapi used 45k% of the CPU power of parameter CPU=2.

Service Memory Utilization

Here we can't see any sign of memory leaks on every module. Memory shows stable trend.


Kafka metrics


DB CPU Utilization

DB CPU was 99%.

DB Connections

Max number of DB connections was 6100.

DB load

Top SQL-queries


Appendix

Infrastructure

PTF - Baseline MCPT environment configuration

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

    NameMemory GIBvCPUs

    db.r6g.4xlarge

    128 GiB16 vCPUs
  • Open Search ptf-test 
    • Data nodes
      • Instance type - r6g.2xlarge.search
      • Number of nodes - 4
      • Version: OpenSearch_2_7_R20240502
    • Dedicated master nodes
      • Instance type - r6g.large.search
      • Number of nodes - 3
  • MSK ptf-KRaft-mode
    • brokers, kafka.m7g.xlarge brokers in 2 zones
    • Apache Kafka version 3.7.x 

    • EBS storage volume per broker 300 GiB

    • auto.create.topics.enable=true
    • log.retention.minutes=480
    • default.replication.factor=3


 mcpt modules memory and CPU parameters

Cluster Resources - mcpt-pvt 

ModuleTask Def. RevisionModule VersionTask CountMem Hard LimitMem Soft limitCPU unitsXmxMetaspaceSizeMaxMetaspaceSize
mod-remote-storage18mod-remote-storage:3.0.124920447210243960512512
mod-ncip12mod-ncip:1.14.42102489612876888128
mod-finance-storage14mod-finance-storage:8.5.041024896102470088128
mod-agreements17mod-agreements:6.0.2015921488128000
mod-ebsconet12mod-ebsconet:2.1.1212481024128700128256
edge-sip212edge-sip2:3.1.12102489612876888128
mod-consortia18mod-consortia:1.0.325136477610244416384512
mod-organizations12mod-organizations:1.8.02102489612876888128
mod-settings17mod-settings:1.0.22102489620076888128
edge-dematic15edge-dematic:2.1.11102489612876888128
mod-data-import15mod-data-import:3.0.71204818442561292384512
mod-search18mod-search:3.0.5425922480204814405121024
mod-tags12mod-tags:2.1.02102489612876888128
mod-authtoken22mod-authtoken:2.14.1614401152102492288128
edge-courses12edge-courses:1.3.02102489612876888128
edge-inventory6edge-inventory:1.4.02102489612876888128
mod-inventory-update12mod-inventory-update:3.2.12102489612876888128
mod-notify12mod-notify:3.1.02102489612876888128
mod-configuration13mod-configuration:5.9.24102489612876888128
mod-orders-storage13mod-orders-storage:13.6.04102489651270088128
edge-caiasoft12edge-caiasoft:2.1.02102489612876888128
mod-login-saml15mod-login-saml:2.7.22102489612876888128
mod-erm-usage-harvester7mod-erm-usage-harvester:4.4.12102489612876888128
mod-password-validator12mod-password-validator:3.1.0214401298128768384512
mod-gobi13mod-gobi:2.7.12102489612876888128
mod-licenses15mod-licenses:5.0.22248023121281792384512
mod-fqm-manager12mod-fqm-manager:1.0.32102489612876888128
edge-dcb9edge-dcb:1.0.22102489612876888128
mod-bulk-operations18mod-bulk-operations:1.1.923072260010241536384512
mod-graphql12mod-graphql:1.12.00102489612876888128
mod-finance12mod-finance:4.8.04102489612876888128
mod-erm-usage7mod-erm-usage:4.6.02102489612876888128
mod-lists15mod-lists:1.0.52102489612876888128
mod-copycat12mod-copycat:1.5.02102489612876888128
mod-permissions26mod-permissions:6.4.04168415445121024384512
mod-entities-links17mod-entities-links:2.0.4225922480400144001024
pub-edge6pub-edge:2023.06.142102489612876800
mod-orders13mod-orders:12.7.142048144010241024384512
edge-patron14edge-patron:5.0.0.1582102489625676888128
edge-ncip12edge-ncip:1.9.22102489612876888128
mod-users-bl12mod-users-bl:7.6.021440115251292288128
edge-ea-data-export7edge-ea-data-export:4.1.02102489612876888128
mod-invoice13mod-invoice:5.7.241440115251292288128
mod-inventory-storage19mod-inventory-storage:27.0.444096369020483076384512
mod-user-import12mod-user-import:3.8.02102489612876888128
mod-sender12mod-sender:1.11.02102489612876888128
edge-oai-pmh15edge-oai-pmh:2.7.121512136010241440384512
mod-data-export-worker15mod-data-export-worker:3.1.223072280010242048384512
mod-rtac12mod-rtac:3.5.02102489612876888128
mod-task-list7mod-task-list:1.9.22102489612876888128
mod-circulation-storage20mod-circulation-storage:17.1.742880259215361814384512
mod-calendar13mod-calendar:2.5.02102489612876888128
mod-source-record-storage21mod-source-record-storage:5.7.525600500020483500384512
mod-event-config12mod-event-config:2.6.02102489612876888128
mod-courses12mod-courses:1.4.82102489612876888128
mod-circulation-item9mod-circulation-item:1.0.02102489612876888128
mod-inventory19mod-inventory:20.1.642880259210241814384512
mod-email12mod-email:1.16.02102489612876888128
mod-circulation20mod-circulation:24.0.1142880259215361814384512
mod-pubsub16mod-pubsub:2.11.32153614401024922384512
mod-di-converter-storage17mod-di-converter-storage:2.1.52102489612876888128
edge-rtac15edge-rtac:2.6.22102489612876888128
edge-orders15edge-orders:2.9.12102489612876888128
mod-template-engine12mod-template-engine:1.19.12102489612876888128
mod-users17mod-users:19.2.24102489612876888128
mod-patron-blocks14mod-patron-blocks:1.9.021024896102476888128
mod-audit13mod-audit:2.8.02102489612876888128
edge-fqm13edge-fqm:1.0.12102489612876888128
mod-source-record-manager18mod-source-record-manager:3.7.725600500020483500384512
nginx-edge6nginx-edge:2023.06.1421024896128000
mod-quick-marc16mod-quick-marc:5.0.11228821761281664384512
nginx-okapi9nginx-okapi:2023.06.14210248961536000
okapi-b8okapi:5.1.23168414401536922384512
mod-feesfines12mod-feesfines:19.0.02102489612876888128
mod-invoice-storage13mod-invoice-storage:5.7.041872153610241024384512
edge-users6edge-users:1.2.02102489612876888128
mod-dcb9mod-dcb:1.0.02102489612876888128
mod-service-interaction15mod-service-interaction:3.0.22204818442561290384512
mod-data-export17mod-data-export:4.8.711024896102476888128
mod-patron12mod-patron:6.0.04102489612876888128
mod-oai-pmh16mod-oai-pmh:3.12.824096369020483076384512
edge-connexion12edge-connexion:1.1.12102489612876888128
mod-kb-ebsco-java12mod-kb-ebsco-java:4.0.02102489612876888128
mod-notes13mod-notes:5.1.021024896128952384512
mod-data-export-spring15mod-data-export-spring:3.0.21204818442561536384512
mod-login12mod-login:7.10.12144012981024768384512
mod-organizations-storage13mod-organizations-storage:4.6.04102489612876888128
pub-okapi6pub-okapi:2023.06.142102489612876800
edge-erm7edge-erm:1.0.02102489612876888128
mod-eusage-reports7mod-eusage-reports:2.0.02102489612876888128


Methodology/Approach

MOBIUS Tests: scenarios were started by JMeter script from load generator. We had 100% error count for AIE_TC: Create Invoices, AIE_TC: Invoices Approve, AIE_TC: Paying Invoices, TC: Receiving-an-Order-Line, Unreceiving-a-Piece and Unreceiving-a-Piece Workflows because data was not regenerated.  

Baseline MCPT Environment configuration according to tunning environment from previous report task count: 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, for mod-users and mod-authtoken task count 6. Parameter srs.marcIndexers.delete.interval.seconds=86400 for mod-source-record-storage. Instance type: m6g.2xlargeInstances count: 14Database r6g.4xlargeAmazon OpenSearch Service  ptf-testr6g.2Ń…large.search (4 nodes).

  • Test 1: The Baseline MCPT Environment configuration was applied, and CPU=2 was set for all services, used two autoscaling groups, 1st with 3 Instance Type: c7g.large for okapi service and 10 Instance Type: r7g.xlarge for others services. Fixed Load (average case) MOBIUS test was run.
  • Test 2: The Baseline MCPT Environment configuration was applied, and CPU=2 was set for all services, used two autoscaling groups, 1st with 3 Instance Type: c7g.large for okapi service and 10 Instance Type: m6g.2xlarge for others modules. Fixed Load (average case) MOBIUS test was run.
  • Test 3:  The Baseline MCPT Environment configuration was applied, and CPU=2 was set for all services, used two autoscaling groups, 1st with 3 Instance Type: c7g.large for okapi service and 10 Instance Type: m6g.2xlarge for others services. Fixed Load (average case) MOBIUS test was run (Repeat Test 2).
  • Test 4: The Baseline MCPT Environment configuration was applied, and CPU=2 was set for all modules, used two autoscaling groups, 1st with 6 Instance Type: c7g.large, 3 of them for okapi service and other 3 for mod-cources, mod-sender, mod-tasks-list, mod-gobi, edge-dematic, mod-erm-usage, mod-eusage-reports, mod-notify, mod-data-import services and 10 Instance Type: r7g.xlarge for others modules. Fixed Load (average case) MOBIUS test was run.
  • Test 5: The Baseline MCPT Environment configuration was applied, and CPU=2 was set for all modules, used two autoscaling groups, 1st with 6 Instance Type: c7g.large, 3 of them for okapi service and other 3 for mod-cources, mod-sender, mod-tasks-list, mod-gobi, edge-dematic, mod-erm-usage, mod-eusage-reports, mod-notify, mod-data-import services and 10 Instance Type: r7g.xlarge for others modules. Fixed Load (average case) MOBIUS test was run (Repeat Test 4).
  • Test 6: The Baseline MCPT Environment configuration was applied, and CPU=2 was set for all modules, used two autoscaling groups, 1st with 6 Instance Type: c7g.large, 3 of them for okapi service and other 3 for mod-cources, mod-sender, mod-tasks-list, mod-gobi, edge-dematic, mod-erm-usage, mod-eusage-reports, mod-notify, mod-data-import services and 10 Instance Type: r7g.xlarge for others modules. Fixed Load (average case without DE_Exporting MARC Bib records custom workflow, DE_Exporting MARC Bib records workflow, and OPIH_/oai/records workflow) MOBIUS test was run.
  • Test 7: The Baseline MCPT Environment configuration was applied, and CPU=2 was set for all modules, used two autoscaling groups, 1st with 6 Instance Type: c7g.large, 3 of them for okapi service and other 3 for mod-cources, mod-sender, mod-tasks-list, mod-gobi, edge-dematic, mod-erm-usage, mod-eusage-reports, mod-notify, mod-data-import services and 10 Instance Type: r7g.xlarge for others modules. Fixed Load (average case without DE_Exporting MARC Bib records custom workflow, DE_Exporting MARC Bib records workflow, and OPIH_/oai/records workflow) MOBIUS test was run (Repeat Test 6).
  • Test 8: The Baseline MCPT Environment configuration was applied, and CPU=2 was set for all modules, used two autoscaling groups, 1st with 6 Instance Type: c7g.large, 3 of them for okapi service and other 3 for mod-cources, mod-sender, mod-tasks-list, mod-gobi, edge-dematic, mod-erm-usage, mod-eusage-reports, mod-notify, mod-data-import services and 10 Instance Type: r7g.xlarge for others modules. Fixed Load (average case) MOBIUS test was run
  • Test 9: The Baseline MCPT Environment configuration was applied, and CPU=2 was set for all modules, used two autoscaling groups, 1st with 6 Instance Type: c7g.large, 3 of them for okapi service and other 3 for mod-cources, mod-sender, mod-tasks-list, mod-gobi, edge-dematic, mod-erm-usage, mod-eusage-reports, mod-notify, mod-data-import services and 10 Instance Type: r7g.xlarge for others modules. Fixed Load (average case without DE_Exporting MARC Bib records custom workflow, DE_Exporting MARC Bib records workflow, and OPIH_/oai/records workflow) MOBIUS test was run (Repeat Test 7 after Terminate Instances r7g.xlarge).
  • Test 10: The Baseline MCPT Environment configuration was applied, and CPU=2 was set for all modules, used two autoscaling groups, 1st with 6 Instance Type: c7g.large, 3 of them for okapi service and other 3 for mod-cources, mod-sender, mod-tasks-list, mod-gobi, edge-dematic, mod-erm-usage, mod-eusage-reports, mod-notify, mod-data-import services and 10 Instance Type: r7g.xlarge for others modules. Fixed Load (average case) MOBIUS test was run (Repeat Test 8 after Terminate Instances r7g.xlarge).
  • Test 11: The Baseline MCPT Environment configuration was applied, and CPU=2 was set for all services, used two autoscaling groups, 1st with 3 Instance Type: c7g.large for okapi service and 11 Instance Type: r7g.xlarge for others services. Fixed Load (average case) MOBIUS test was run.
  • Test 12: The Baseline MCPT Environment configuration was applied, and CPU=2 was set for all services, used two autoscaling groups, 1st with 3 Instance Type: c7g.large for okapi service and 11 Instance Type: r7g.xlarge for others services. Fixed Load (average case) MOBIUS test was run (Repeat Test 11).
  • Test 13: The Baseline MCPT Environment configuration was applied, and CPU=2 was set for all services, used two autoscaling groups, 1st with 3 Instance Type: c7g.large for okapi service and 11 Instance Type: r7g.xlarge for others services. Fixed Load (average case) MOBIUS test was run (Repeat Test 11).
  • Test 14: The Baseline MCPT Environment configuration was applied, and CPU=2 was set for all services, used two autoscaling groups, 1st with 3 Instance Type: c7g.large for okapi service and 11 Instance Type: r7g.xlarge for others services. Fixed Load (average case) MOBIUS test was run (Repeat Test 11 after terminate 11 instances).
  • Test 15: The Baseline MCPT Environment configuration was applied, and CPU=2 was set for all services, used two autoscaling groups, 1st with 3 Instance Type: c7g.large for okapi and mod-authtoken services and 11 Instance Type: r7g.xlarge for others services. Fixed Load (average case) MOBIUS test was run.
  • Test 16: The Baseline MCPT Environment configuration was applied, and CPU=2 was set for all services, used two autoscaling groups, 1st with 3 Instance Type: c7g.large for okapi service and 5 Instance Type: r7g.2xlarge for others services. Fixed Load (average case) MOBIUS test was run.
  • Test 17: The Baseline MCPT Environment configuration was applied, and CPU=2 was set for all services, used two autoscaling groups, 1st with 3 Instance Type: c7g.large for okapi service and 5 Instance Type: r7g.2xlarge for others services. Fixed Load (average case) MOBIUS test was run (Repeat Test 16)




  • No labels