Resource utilization for Test №2
...
title | Resource utilization table |
---|
...
Table of Contents outline true
Overview
- This document contains the results of testing Data Import for MARC Bibliographic records with an update job on the Quesnelia [ECS] release on qcon environment.
Jira Legacy | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
|
Summary
- Data Import tests finished successfully on qcon environment using the PTF - Updates Success - 2 profile and file with 25k records.
- Comparing with previous testing results Poppy and Quesnelia releases
- Data Import processed all jobs including test on 3 tenants concurrently without errors for Quesnelia releases.
- Data Import durations stayed in the same time range in Average for Quesnelia releases but it works stable and without errors.
- During testing, we noticed that mod-permission did not have any spikes and used 12% CPU for Quesnelia releases. For Poppy releases we had error.
Test Runs
...
Test №
...
Test Conditions
...
1.
...
1 CI or CO per min for small tenants, 2 CICO per min for large tenants
...
2 CI or CO per min for small tenants, 4 CICO per min for large tenants
...
4 CICO per min for one large tenant
...
Test Results
This table contains durations for Data Import.
...
College
(cs00000int_0001)
...
Comparison
This table contains durations comparison between Poppy and Quesnelia releases.
...
Resource utilization for Test №1
...
title | Resource utilization table |
---|
...
Service CPU Utilization
Here we can see that mod-data-import used 150% CPU in spikes.
Service Memory Utilization
Here we can see that all modules show a stable trend.
DB CPU Utilization
DB CPU was 92%.
DB Connections
Max number of DB connections was 1690.
DB load
Top SQL-queries
...
INSERT INTO cs00000int_0001_mod_source_record_manager.events_processed (handler_id, event_id) VALUES ($1, $2)
...
insert into "marc_records_lb" ("id", "content") values (cast($1 as uuid), cast($2 as jsonb)) on conflict ("id") do update set "content" = cast($3 as jsonb)
...
INSERT INTO cs00000int_0001_mod_source_record_manager.journal_records (id, job_execution_id, source_id, source_record_order, entity_type, entity_id, entity_hrid, action_type, action_status, error, action_date, title, instance_id, holdings_id, order_id, permanent_location_id, tenant_id)
VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16, $17)
...
INSERT INTO cs00000int_mod_search.consortium_instance (tenant_id, instance_id, json, created_date, updated_date)
VALUES ($1, $2, $3::json, $4, $5)
ON CONFLICT (tenant_id, instance_id)
DO UPDATE SET json = EXCLUDED.json, updated_date = EXCLUDED.updated_date
...
INSERT INTO cs00000int_0001_mod_inventory_storage.holdings_record (id, jsonb) VALUES ($1, $2) RETURNING jsonb
Table of Contents outline true
Overview
- This document contains the results of testing Check-in/Check-out and Data Import for MARC Bibliographic records on the Quesnelia [ECS] release on qcon environment.
Jira Legacy | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
|
Summary
- Data Import with Check In/Check Out tests finished successfully on qcon environment using the PTF - Create 2 and PTF - Updates Success - 2 profiles with files 5K, 10K, 25K, 50K, 100K records.
- Comparing with previous testing results Poppy and Quesnelia releases
- Data Import durations for create jobs has performance degradation in Average up to 10% for Quesnelia releases.
- Data Import durations for update jobs has performance degradation in Average up to 40% for Quesnelia releases.
- Check In/Check Out Response time has slight improvement in Average up to 10% for Quesnelia releases.
- During testing, we noticed that mod-data-import module used maximum 57% CPU for Quesnelia releases. For Poppy releases we mod-data-import module used 130% CPU and 320% in spike.
- No memory leaks are observed.
Test Runs
Test № | Scenario | Test Conditions | Results |
---|---|---|---|
1 | DI MARC Bib Create | 5K, 10K, 25K, 50K, 100K consequentially (with 5 min pause) | Completed |
CICO | 8 users | ||
2 | DI MARC Bib Update | 5K, 10K, 25K, 50K, 100K consequentially (with 5 min pause) |
|
CICO | 8 users |
Test Results
This table contains durations for Data Import.
Profile | MARC File | DI Duration Quesnelia (hh:mm:ss) | Check In, Check Out Response time (8 users) Quesnelia | |
---|---|---|---|---|
CI Average sec | CO Average sec | |||
DI MARC Bib Create (PTF - Create 2) | 5K.mrc | 0:03:21 | 0.831 | 1.357 |
10K.mrc | 0:06:51 | 0.845 | 1.410 | |
25K.mrc | 0:12:41 | 0.719 | 1.333 | |
50K.mrc | 0:23:19 | 0.691 | 1.327 | |
100K.mrc | 0:51:24 | 0.664 | 1.335 | |
DI MARC Bib Create (PTF - Updates Success - 2) | 5K.mrc | 0:04:12 | 0.764 | 1.458 |
10K.mrc | 0:08:15 | 0.779 | 1.377 | |
25K.mrc | 0:20:38 | 0.755 | 1.401 | |
50K.mrc | 0:43:06 | 0.750 | 1.444 | |
100K.mrc | 1:29:09 | 0.730 | 1.458 |
Check-in/Check-out without DI
Scenario | Load level | Request | Response time, sec Quesnelia | |
---|---|---|---|---|
95 perc | average | |||
Circulation Check-in/Check-out (without Data import) | 8 users | Check-in | 0.635 | 0.493 |
Check-out | 1.243 | 1.078 |
Comparison
This table contains DI durations with CICO comparison between Poppy and Quesnelia releases.
Profile | MARC File | DI Durationwith CI/CO | DI Delta Poppy/Quesnelia (hh:mm:ss / %) | Check In, Check Out Response time (8 users) | Check In, Check Out Response time (8 users) | Delta, % | ||||
Poppy | Quesnelia | Poppy/Quesnelia | Poppy/Quesnelia | |||||||
Poppy | Quesnelia | CI Average sec | CO Average sec | CI Average sec | CO Average sec | CI | CO | |||
DI MARC Bib Create (PTF - Create 2) | 5K.mrc | 00:02:53 | 0:03:21 | +0:00:28 / +16.18% | 0.901 | 1.375 | 0.831 | 1.357 | -7.77% | -1.31% |
10K.mrc | 00:04:32 | 0:06:51 | +0:02:19 / +51.10% | 0.902 | 1.47 | 0.845 | 1.410 | -6.32% | -4.08% | |
25K.mrc | 00:11:14 | 0:12:41 | +0:01:27 / +12.91% | 1 | 1.571 | 0.719 | 1.333 | -28.1% | -15.15% | |
50K.mrc | 00:21:55 | 0:23:19 | +0:01:24 / +6.39% | 0.981 | 1.46 | 0.691 | 1.327 | -29.57% | -9.11% | |
100K.mrc | 00:47:02 | 0:51:24 | +0:04:22 / +9.28% | 1.018 | 1.491 | 0.664 | 1.335 | -34.78% | -10.47% | |
DI MARC Bib Create (PTF - U1.571pdates Success - 2) | 5K.mrc | 00:03:19 | 0:04:12 | +0:00:53 /+26.63% | 0.755 | 1.169 | 0.764 | 1.458 | +1.19% | +24.73% |
10K.mrc | 00:06:20 | 0:08:15 | +0:01:55 / +30.26% | 0.75 | 1.307 | 0.779 | 1.377 | +3.87% | +5.36% | |
25K.mrc | 00:14:04 | 0:20:38 | +0:06:34 / +46.68% | 0.822 | 1.403 | 0.755 | 1.401 | -8.15% | -0.14% | |
50K.mrc | 00:29:59 | 0:43:06 | +0:13:07 / +43.74% | 0.893 | 1.424 | 0.750 | 1.444 | -16.01% | +1.40% | |
100K.mrc | 01:03:03 | 1:29:09 | +0:26:06 / +41.40% | 0.908 | 1.51 | 0.730 | 1.458 | -19.60% | -3.44% |
Detailed CICO response time comparison without DI
Scenario | Load level | Request | Response time, sec Poppy | Response time, sec Quesnelia | ||
---|---|---|---|---|---|---|
95 perc | average | 95 perc | average | |||
Circulation Check-in/Check-out (without Data import) | 8 users | Check-in | 0.489 | 0.431 | 0.635 | 0.493 |
Check-out | 0.969 | 0.828 | 1.243 | 1.078 |
Resource utilization for Test №1
Expand | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Service CPU Utilization
Here we can see that mod-data-import used 130% 150% CPU in spikes.
Service Memory Utilization
Here we can see that all modules show a stable trend.
...
DB CPU Utilization
DB CPU was 92%.
DB Connections
Max number of DB connections was 16851690.
DB load
Top SQL-queries
# | TOP 5 SQL statements | ||
---|---|---|---|
1 |
| ||
2 |
| )2 |
|
3 |
| ||
4 |
| ||
5 |
|
Appendix
Infrastructure
PTF - environment Quesnelia (qcon)
11 m6i.2xlarge EC2 instances located in US East (N. Virginia)us-east-1 [Number of ECS instances, instance type, location region]
1 instance of db.r6.xlarge database instance: Writer instance
OpenSearch
domain: fse
Number of nodes: 9
Version: OpenSearch_2_7_R20240502
MSK - tenat
4 kafka.m5.2xlarge brokers in 2 zones
Apache Kafka version 2.8.0
EBS storage volume per broker 300 GiB
auto.create.topics.enable=true
log.retention.minutes=480
default.replication.factor=3
Kafka consolidated topics enabled
...
title | Quesnelia modules memory and CPU parameters |
---|
...
| |
5 |
|
Resource utilization for Test №2
Expand | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Service CPU Utilization
Here we can see that mod-data-import used 130% CPU in spikes.
Service Memory Utilization
Here we can see that all modules show a stable trend.
DB CPU Utilization
DB CPU was 92%.
DB Connections
Max number of DB connections was 1685.
DB load
Top SQL-queries
# | TOP 5 SQL statements |
---|---|
1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
Appendix
Infrastructure
PTF - environment Quesnelia (qcon)
10 m6i.2xlarge EC2 instances located in US East (N. Virginia)us-east-1
1 instance of db.r6.xlarge database instance: Writer instance
OpenSearch
domain: fse
Number of nodes: 6
Version: OpenSearch_2_7_R20240502
MSK - tenat
4 kafka.m5.2xlarge brokers in 2 zones
Apache Kafka version 2.8.0
EBS storage volume per broker 300 GiB
auto.create.topics.enable=true
log.retention.minutes=480
default.replication.factor=3
Kafka consolidated topics enabled
Expand | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Code Block | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
select file_name,started_date,completed_date, completed_date - started_date as duration ,status
from cs00000int_0001_mod_source_record_manager.job_execution order by started_date desc limit 1000;
select file_name,started_date,completed_date, completed_date - started_date as duration ,status
from cs00000int_0002_mod_source_record_manager.job_execution order by started_date desc limit 1000;
select file_name,started_date,completed_date, completed_date - started_date as duration ,status
from cs00000int_0003_mod_source_record_manager.job_execution order by started_date desc limit 1000;
|
Methodology/Approach
DI tests scenario(DI MARC Bib Update) were started from UI.
Test set:
- Test 1: Manually tested 25k records files DI started on College tenant(cs00000int_0001) only.
- Test 2: Manually tested 25k records files DI started on College tenant(cs00000int_0001) and Professional tenant(cs00000int_0002) concurrently, step 30%.
- Test 3: Manually tested 25k records files DI started on College tenant(cs00000int_0001), Professional tenant(cs00000int_0002) and School tenant(cs00000int_0003) concurrently, step 30%.
To get status and time range for import jobs the query used:
|
Methodology/Approach
DI tests scenario (DI MARC Bib Create and Update) were started from UI on Quesnelia (qcon) env with file splitting features enabled on a ecs environment..
Test runs:
- Test 1: Manually tested 5K, 10K, 25K, 50K, 100K consequentially (with 5 min pause) records files, DI (DI MARC Bib Create ) started on College tenant(cs00000int_0001) only, and CICO with 8 users on background.
- Test 2: Manually tested 5K, 10K, 25K, 50K, 100K consequentially (with 5 min pause) records files, DI (DI MARC Bib Update) started on College tenant(cs00000int_0001) only, and CICO with 8 users on background.
At the time of the test run, Grafana was not available. As a result, response times for Check-In/Check-Out were parsed manually from a .jtl files, using the start and finish dates of the data import tests. These results were visualized in JMeter using a Listener (Response Times Over Time).