Table of Contents outline true
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.
Jira Legacy | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
|
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 theokapi
service and three allocated tomod-courses
,mod-sender
,mod-tasks-list
,mod-gobi
,edge-dematic
,mod-erm-usage
,mod-eusage-reports
,mod-notify
, andmod-data-import
services) alongside tenr7g.xlarge
instances for all other services, with the CPU parameter set to 2 for all services. three
c7g.large
instances dedicated to theokapi
service alongside fiver7g.2xlarge
instances for all other services, with the CPU parameter set to 2 for all services.
- six
- 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 Results
This table contains durations for all Workflows.
...
Test 2
(Repeat 1)
...
Test 4
(Repeat 3)
...
Test 6
(Repeat 5)
...
Comparison
This graph shows the durations of all workflows compared between the best test results.
Average Case workflows: Part 1.
Average Case workflows: Part 2.
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.
Results: We 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. Table of Contents outline true
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.
Jira Legacy | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
|
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 configurations:
three
c7g.large
instances dedicated to theokapi
service alongside fiver7g.2xlarge
instances for all other services, with the CPU parameter set to 2 for all services.- five
r7g.2xlarge
instances for all services, with the CPU parameter set to 2 for all services.
- Optimized environment configurations offers a 20-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.
- In fact, some workflows show better performance with this new setup than correct infrastructures.
- The CPU utilization on EC2 level better now - around 30-60%, previously it was under 20%.
AWS Configuration Costs
Cluster | Instance Type | Cost per Month (USD) | Number of Instances | Total Cost per Cluster (USD) |
---|---|---|---|---|
QCP1 | m6g.2xlarge | $221.76 | 10 | $2,217.60 |
MCPT | m6g.2xlarge | $221.76 | 14 | $3,104.64 |
Optimized Infrastructure Two Auto Scaling Groups | c7g.large | $52.20 | 3 | $1,698.84 |
r7g.2xlarge | $308.45 | 5 | ||
Optimized Infrastructure One Auto Scaling Groups | r7g.2xlarge | $308.45 | 5 | $1,542.25 |
Cost Comparison (Before vs After)
Cluster | Previous Total Cost | New Total Cost | Percentage Saving |
---|---|---|---|
QCP1 | $2,217.60 | $1,698.84 | 23.39% |
MCPT | $3,104.64 | $1,698.84 | 45.28% |
Test Runs
Test # | Description | Status |
---|---|---|
Test 1 | Instance type: m6g.2xlarge. Instances count: 10. | Completed |
Test 2 | Instance type: m6g.2xlarge. Instances count: 10 (Repeat Test 1). | Completed |
Test 3 | Used two autoscaling groups, 1st with 3 Instance Type: c7g.large for okapi service and 5 Instance Type: m6g.2xlarge for others services. | Completed |
Test 4 | Used two autoscaling groups, 1st with 3 Instance Type: c7g.large for okapi service and 5 Instance Type: m6g.2xlarge for others services (Repeat Test 3). | Completed |
Test 5 | CPU=2 was set for all modules, used two autoscaling groups, 1st with 3 Instance Type: c7g.large, 3 of them for okapi service and 5 Instance Type: r7g.xlarge for others modules. | Completed |
Test 6 | CPU=2 was set for all modules, used two autoscaling groups, 1st with 3 Instance Type: c7g.large, 3 of them for okapi service and 5 Instance Type: r7g.xlarge for others modules (Repeat Test 5). | Completed |
Test 7 | CPU=2 was set for all modules except CPU=2048 for mod-search, used two autoscaling groups, 1st with 3 Instance Type: c7g.large, 3 of them for okapi service and 5 Instance Type: r7g.xlarge for others modules. | Completed |
Test 8 | CPU=2 was set for all modules, used ONE autoscaling group with 5 Instance Type: c7g.large for all services. | |
Test 9 | CPU=2 was set for all modules, used ONE autoscaling group with 5 Instance Type: c7g.large for all services (Repeat Test 8). | |
Test 10 | CPU=2 was set for all modules except CPU=2048 for mod-search, used ONE autoscaling group with 5 Instance Type: c7g.large for all services. | |
Test 11 | CPU=2 was set for all modules except CPU=2048 for mod-search, used ONE autoscaling group with 5 Instance Type: c7g.large for all services (Repeat Test 10). | |
Test 12 | CPU=2 was set for all modules except CPU=2048 for mod-search, used ONE autoscaling group with 5 Instance Type: c7g.large for all services (Repeat Test 11). |
Test Results
This table contains durations for all Workflows.
Workflows | Test 1 | Test 2 | Test 3 | Test 4 (Repeat 3) | Test 5 | Test 6 (Repeat 5) | Test 7 | Test 8 | Test 9 (Repeat 8) | Test 10 | Test 11 (Repeat 10) | Test 12 (Repeat 11) | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Average response time (milliseconds) | Errors | Average response time (milliseconds) | Errors | Average response time (milliseconds) | Errors | Average response time (milliseconds) | Errors | Average response time (milliseconds) | Errors | Average response time (milliseconds) | Errors | Average response time (milliseconds) | Errors | Average response time (milliseconds) | Errors | Average response time (milliseconds) | Errors | Average response time (milliseconds) | Errors | Average response time (milliseconds) | Errors | Average response time (milliseconds) | Errors | |
DATA IMPORT | 0:52:03 | 0:44:55 | 0:46:07 | 0:47:09 | 0:51:41 | 0:58:35 | 1:00:03 | 0:43:53 | 0:47:06 | 0:55:30 | 0:45:46 | 0:44:09 | ||||||||||||
DATA EXPORT | 0:58:11 | 0:44:43 | 0:47:41 | 0:50:32 | 0:38:59 | 0:45:53 | 0:48:26 | not finished for main | 0:45:41 | 0:48:49 | 0:56:49 | 0:42:16 | 0:44:26 | |||||||||||
CICO_TC_Check-In Controller | 1163 | 0% | 948 | 0% | 932 | 0% | 958 | 0% | 849 | 0% | 895 | 0% | 940 | 0% | 912 | 0% | 993 | 0% | 1176 | 0% | 892 | 0% | 967 | 0% |
CICO_TC_Check-Out Controller | 1697 | 0% | 1481 | 0% | 1408 | 0% | 1428 | 0% | 1318 | 0% | 1318 | 0% | 1367 | 0% | 1345 | 0% | 1445 | 0% | 1675 | 0% | 1371 | 0% | 1467 | 0% |
DE_Exporting MARC Bib records workflow | 2528 | 0% | 3818 | 0% | 3675 | 0% | 2830 | 0% | 1918 | 0% | 2223 | 0% | 1865 | 0% | 3363 | 0% | 2420 | 0% | 1872 | 0% | 3398 | 0% | 5033 | 0% |
ILR_TC: Create ILR | 1023 | 0% | 874 | 0% | 730 | 0% | 804 | 0% | 624 | 0% | 662 | 0% | 802 | 0% | 820 | 0% | 767 | 0% | 1116 | 0% | 877 | 0% | 780 | 0% |
ILR_TC: Get ItemId | 132 | 0% | 131 | 0% | 107 | 0% | 114 | 0% | 112 | 0% | 109 | 0% | 109 | 0% | 116 | 0% | 127 | 0% | 165 | 0% | 136 | 0% | 130 | 0% |
MSF_TC: mod search by auth query | 4830 | 0% | 4835 | 6% | 5480 | 6% | 7658 | 10% | 7570 | 19% | 2175 | 0% | 2474 | 0% | 6094 | 10% | 4119 | 12% | 2938 | 0% | 5546 | 11% | 7075 | 18% |
MSF_TC: mod search by boolean query | 469 | 0% | 621 | 3% | 1456 | 2% | 1027 | 5% | 1876 | 5% | 256 | 1% | 605 | 0% | 1343 | 5% | 527 | 4% | 333 | 0% | 1197 | 7% | 1263 | 6% |
MSF_TC: mod search by contributors | 475 | 0% | 1655 | 3% | 1805 | 6% | 1714 | 3% | 3467 | 8% | 496 | 0% | 503 | 0% | 1966 | 4% | 755 | 6% | 465 | 0% | 2090 | 5% | 2036 | 8% |
MSF_TC: mod search by filter query | 229 | 0% | 844 | 2% | 703 | 2% | 1137 | 0% | 1573 | 2% | 217 | 0% | 262 | 0% | 1100 | 2% | 429 | 3% | 238 | 0% | 944 | 4% | 1068 | 6% |
MSF_TC: mod search by keyword query | 228 | 0% | 519 | 3% | 1161 | 4% | 1245 | 8% | 1312 | 4% | 198 | 0% | 256 | 0% | 1144 | 3% | 434 | 2% | 250 | 0% | 979 | 4% | 1018 | 8% |
MSF_TC: mod search by subject query | 577 | 0% | 1846 | 3% | 1825 | 3% | 1634 | 7% | 2328 | 2% | 445 | 0% | 539 | 0% | 2163 | 3% | 840 | 7% | 473 | 0% | 1476 | 6% | 1919 | 8% |
MSF_TC: mod search by title query | 2141 | 0% | 3251 | 3% | 3770 | 1% | 4598 | 2% | 4887 | 8% | 2038 | 0% | 2294 | 0% | 4285 | 5% | 3214 | 6% | 2054 | 0% | 4145 | 7% | 4437 | 9% |
DI_TC: Importing MARC records workflow Transaction &{tenant} | 1059451 | 0% | 20423 | 0% | 935626 | 0% | 950403 | 0% | 1047836 | 0% | 17946 | 0% | 1210429 | 33% | 17258 | 0% | 955349 | 0% | 2238208 | 0% | 18974 | 0% | 18762 | 0% |
PRV_TC: View Patron record Group | 347 | 0% | 310 | 0% | 248 | 0% | 238 | 0% | 213 | 0% | 284 | 0% | 313 | 0% | 265 | 0% | 254 | 0% | 355 | 0% | 242 | 0% | 273 | 0% |
ULR_TC: Users loan Renewal Transaction | 1059451 | 0% | 1852 | 0% | 1528 | 0% | 1717 | 0% | 1551 | 0% | 1595 | 0% | 1749 | 0% | 1526 | 0% | 1761 | 0% | 4117 | 0% | 1496 | 0% | 1617 | 0% |
Comparison
This graph shows the durations of all workflows compared between the best test results.
Part 1
Part 2
Part 3
Test №1
Introduction: Test 1: The Baseline QCP1 Environment configuration was applied, qcp1_MiniMaster.jmx script was run.
Objective: The objective of test was to evaluate the performance of the MCPT environment by applying the baseline configuration.
Instance CPU Utilization
Service CPU Utilization
Here we can see that mod-inventory-b modules used 73% CPU.
Service Memory Utilization
Here we can't see any sign of memory leaks on every module. Memory shows stable trend.
Kafka metrics
OpenSearch metrics
DB CPU Utilization
DB CPU was 99%97% average.
DB Connections
Max number of DB connections was 60001250 in maximum.
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.
...
Top SQL-queries
Test №2
Introduction: The Baseline QCP1 Environment configuration was applied, qcp1_MiniMaster.jmx script was run (Repeat Test 1).
Objective:The objective of this test was to validate the consistency of performance observed in Test
5 and Test 6. This was achieved1 by repeating the same configuration.
Results:
We see performance improvements for Test 8Results was almost the same for all workflows.
Instance CPU Utilization
Service CPU Utilization
Here we can see that
...
mod-inventory-b modules used 102% CPU in maximum.
Service Memory Utilization
Here we can't see any sign of memory leaks on every module. Memory shows stable trend.
Kafka metrics
OpenSearch metrics
DB CPU Utilization
DB CPU was
...
95% average
DB Connections
Max number of DB connections was
...
1250.
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
DB load
Top SQL-queries
Test №3-4
Introduction: Test 3: The Baseline QCP1 Environment configuration was applied, used two autoscaling groups, 1st with 3 Instance Type: c7g.large for okapi service and 5 Instance Type: c7g.large for others services, qcp1_MiniMaster.jmx script was run. Test 3: Repeat Test 1.
Objective: The objective of test was to evaluate the performance of the QCP1 environment by applying two distinct autoscaling groups with different instance types: c7g.large for the Okapi service and r7g.xlarge for all other services. By running 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: We observed nearly identical performance results almost for all the workflows compared to the Baseline configuration and repeated it in Test №4.
Instance CPU Utilization
Service CPU Utilization
Here we can see that
...
mod-inventory-b used 78k% of the
...
CPU
...
.
Service Memory Utilization
Here we can't see any sign of memory leaks on every module. Memory shows stable trend.
Kafka metrics
OpenSearch metrics
DB CPU Utilization
DB CPU was
...
97% maximum.
DB Connections
Max number of DB connections was
...
2200.
DB load
Top SQL-queries
Test
№11№5-6-7
Introduction: The
Baseline
MCPTQCP1 Environment configuration
was applied,
and
CPU=2
was set for all
servicesmodules, used two autoscaling groups, 1st with
3 Instance Type: c7g.large
for
okapi service and
11 Instance5 Instance Type:
r7g.xlarge for others services. Fixed Load (average case) MOBIUS testc7g.large for others services, qcp1_MiniMaster.jmx script was run.
Objective:
The goal of this test was to replace threec7g.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 workloadsRepeat tests to confirm performance.
Results: Performance was confirmed at the same like baseline.
Instance CPU Utilization
Service CPU Utilization
Here we can see that
...
mod-data-export-b used 82k% 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
OpenSearch metrics
DB CPU Utilization
DB CPU was
...
97%.
DB Connections
Max number of DB connections was
...
DB load
1250.
DB load
Top SQL-queries
Test
№12№8-
139
Introduction: The Baseline
MCPTQCP1 Environment configuration was applied, and CPU=2 was set for all
servicesmodules, used
two autoscaling groups, 1st with 3ONE autoscaling group with 5 Instance Type: c7g.large for
okapi service and 11 Instance Type: r7g.xlarge for others services. Fixed Load (average case) MOBIUS testall services, qcp1_MiniMaster.jmx script was run.
Objective:
The objectiveThe goal of
thistest
was to validate the degradation of performance observed in Test 11 by repeating the same configurationis to put okapi service in one tier with all services and compare performance with previous result and baseline result.
Results:
We confirmed performance degradation with this configurationPerformance was confirmed at the same like baseline.
Instance CPU Utilization
Service CPU Utilization
Here we can see that
...
mod-data-export-b used 36k% AVG 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
OpenSearch metrics
DB CPU Utilization
DB CPU was
...
94%.
DB Connections
Max number of DB connections was
...
1265.
...
DB load
Top SQL-queries
Test
№14№10
Introduction: The Baseline
MCPTQCP1 Environment configuration was applied, and CPU=2 was set for all
servicesmodules except CPU=2048 for mod-search, used
two autoscaling groups, 1st with 3ONE autoscaling group with 5 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 sameall services, qcp1_MiniMaster.jmx script was run
Objective: The goal of test is confirm the test result with previous configuration.
Results:
We confirmed performance degradation with this configurationPerformance was confirmed at the same like previous one.
Instance CPU Utilization
Service CPU Utilization
Here we can see that
...
mod-data-export-b used 116k% MAX 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
OpenSearch metrics
DB CPU Utilization
DB CPU was
...
94%.
DB Connections
Max number of DB connections was
...
1220.
DB load
Top SQL-queries
Test
№15№11
Introduction: The Baseline
MCPTQCP1 Environment configuration was applied, and CPU=2 was set for all
servicesmodules except CPU=2048 for mod-search, used
two autoscaling groups, 1st with 3ONE autoscaling group with 5 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 configurationall services, qcp1_MiniMaster.jmx script was run
Objective: The goal of test is confirm the test result with previous configuration.
Results: Performance was confirmed at the same like previous one.
Instance CPU Utilization
Service CPU Utilization
Here we can see that
...
mod-data-export-b used 36k% AVG of the CPU power of parameter CPU=2.
Service Memory Utilization
Here we can't see any sign of memory
...
Kafka metrics
DB CPU Utilization
DB CPU was 99%.
DB Connections
Max number of DB connections was 5150.
...
leaks on every module. Memory shows stable trend.
Kafka metrics
OpenSearch metrics
DB CPU Utilization
DB CPU was 94%.
DB Connections
Max number of DB connections was 1200.
DB load
Top SQL-queries
Test
№16 - 17№12
Introduction:
Test 16: The Baseline MCPTThe Baseline QCP1 Environment configuration was applied, and CPU=2 was set for all
servicesmodules except CPU=2048 for mod-search, 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 improvementsONE autoscaling group with 5 Instance Type: c7g.large for all services, qcp1_MiniMaster.jmx script was run
Objective: The goal of test is confirm the test result with previous configuration.
Results: Performance was confirmed at the same like previous one.
Instance CPU Utilization
Service CPU Utilization
Here we can see that
...
mod-data-export-b used 36k% AVG 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
OpenSearch metrics
DB CPU Utilization
DB CPU was
...
94%.
DB Connections
Max number of DB connections was
...
1265.
...
DB load
Top SQL-queries
Appendix
Infrastructure
PTF - Baseline QCP1 environment configurationenvironment configuration (was changed during testing)
- 10 m6g.2xlarge EC2 instances located in US East (N. Virginia)us-east-1
1 database instance, writer
Name Memory GIB vCPUs db.r6g.xlarge
32 GB 4 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
- Data nodes
- MSK fse-tenant
- 2 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
...
Expand | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Cluster Resources - qcp1-pvt (Thu Sep 12 09:30:08 UTC 2024)
|
Methodology/Approach
Tests scenarios were started by JMeter script from load generator.
Baseline QCP1 Environment configuration: Parameter srs.marcIndexers.delete.interval.seconds=86400 for mod-source-record-storage, number of tasks to launch for service mod-marc-migrations-b was set zero. Instance type: m6g.2xlarge. Instances count: 10. Database db.r6g.xlarge, Amazon OpenSearch Service ptf-test: r6g.2хlarge.search (4 nodes).
...
|
Methodology/Approach
Tests scenarios were started by JMeter script from load generator.
Baseline QCP1 Environment configuration: Parameter srs.marcIndexers.delete.interval.seconds=86400 for mod-source-record-storage, number of tasks to launch for service mod-marc-migrations-b was set zero. Instance type: m6g.2xlarge. Instances count: 10. Database db.r6g.xlarge, Amazon OpenSearch Service ptf-test: r6g.2хlarge.search (4 nodes).
- Test 1: The Baseline QCP1 Environment configuration was applied, qcp1_MiniMaster.jmx script was run.
- Test 2: The Baseline QCP1 Environment configuration was applied, qcp1_MiniMaster.jmx script was run (Repeat Test 1).
- Test 3: The Baseline QCP1 Environment configuration was applied, used two autoscaling groups, 1st with 3 Instance Type: c7g.large for okapi service and 5 Instance Type: c7g.large for others services, qcp1_MiniMaster.jmx script was run.
- Test 4: The Baseline QCP1 Environment configuration was applied, used two autoscaling groups, 1st with 3 Instance Type: c7g.large for okapi service and 5 Instance Type: c7g.large for others services, qcp1_MiniMaster.jmx script was run (Repeat Test 3).
- Test 5: The Baseline QCP1 Environment configuration was applied, and CPU=2 was set for all modules, used two autoscaling groups, 1st with 3 Instance Type: c7g.large for okapi service and 5 Instance Type: c7g.large for others services, qcp1_MiniMaster.jmx script was run.
- Test 6: The Baseline QCP1 Environment configuration was applied, and CPU=2 : The Baseline QCP1 Environment configuration was appliedwas set for all modules, used two autoscaling groups, 1st with 3 Instance Type: c7g.large for okapi service and 5 Instance Type: c7g.large for others services, qcp1_MiniMaster.jmx script was run run (Repeat Test 15).
- Test 37: The Baseline QCP1 Environment configuration was applied, used , and CPU=2 was set for all modules except CPU=2048 for mod-search, used two autoscaling groups, 1st with 3 Instance Type: c7g.large for okapi service and 5 Instance Type: c7g.large for others services, qcp1_MiniMaster.jmx script was run.
- Test 48: The The Baseline QCP1 Environment configuration was applied, used two autoscaling groups, 1st with 3 , and CPU=2 was set for all modules, used ONE autoscaling group with 5 Instance Type: c7g.large for okapi service and for all services, qcp1_MiniMaster.jmx script was run.
- Test 9: The Baseline QCP1 Environment configuration was applied, and CPU=2 was set for all modules, used ONE autoscaling group with 5 Instance Type: c7g.large for others all services, qcp1_MiniMaster.jmx script was run run (Repeat Test 38).
- Test 510: The Baseline QCP1 Environment configuration was applied, and CPU=2 was set for all modules except CPU=2048 for mod-search, used two autoscaling groups, 1st with 3 Instance Type: c7g.large for okapi service and ONE autoscaling group with 5 Instance Type: c7g.large for others all services, qcp1_MiniMaster.jmx script was run.
- Test 611: The Baseline QCP1 Environment configuration was applied, and CPU=2 was set for all modules except CPU=2048 for mod-search, used two autoscaling groups, 1st with 3 Instance Type: c7g.large for okapi service and ONE autoscaling group with 5 Instance Type: c7g.large for others all services, qcp1_MiniMaster.jmx script was run run (Repeat Test 510).
- Test 712: The Baseline QCP1 Environment configuration was applied, and CPU=2 was set for all modules except CPU=2048 for mod-search, used two autoscaling groups, 1st with 3 Instance Type: c7g.large for okapi service and ONE autoscaling group with 5 Instance Type: c7g.large for others all services, qcp1_MiniMaster.jmx script was run (Repeat Test 11).