...
...
...
...
...
...
...
...
...
...
Table of Contents |
---|
This document contains the results of testing different configurations of modules with changes in JAVA_OPTS
replacing XMX with MaxRAMPercentage. The main KPI for these tests are Memory consumption of modules, Data import durations and Check-in / Check-out response times.
Ticket: Jira Legacy server System Jira columnIds issuekey,summary,issuetype,created,updated,duedate,assignee,reporter,priority,status,resolution columns key,summary,type,created,updated,due,assignee,reporter,priority,status,resolution serverId 01505d01-b853-3c2e-90f1-ee9b165564fc key PERF-893
Summary
- Replacing XMX with MaxRAMPercentage do not affect main KPI's. Maximum delta of DI's durations was close to 4 minutes that is acceptable.
- Changing MaxRAMPercentage from default values to recommended 66% do not affect Check-in / Check-out response times but it affect Data import durations more than 5 minutes difference. For DI test #6 - almost 8 minutes.
- Data import perform better in configuration #2. Comparing DI durations between configuration #2 and #3 (with limited MaxRAMPercentage) we see 4 minutes difference. Problems with mod-inventory module appear in configuration #3 faster.
- Memory consumption from modules
Test Runs
Test / Configuration # | Scenario | Load level | JAVA_OPTS |
---|---|---|---|
1 | 20 vUsers longevity CI/CO + DI MARC Bib Create | 12 Data Import tests with 100K sequentially (with 5 min pause) |
|
2 | 20 vUsers longevity CI/CO + DI MARC Bib Create | 12 Data Import tests with 100K sequentially (with 5 min pause) |
|
3 | 20 vUsers longevity CI/CO + DI MARC Bib Create | 12 Data Import tests with 100K sequentially (with 5 min pause) | -XX:MaxRAMPercentage, Recommended - 66% |
Test Results
Comparison
The following table compares test results
BASELINEConfiguration #1 BASELINE, XMX | STEP #1 default MaxPercentage STEP #2 recommended MaxPercentage Configuration #2 default MaxRAMPercentage | Configuration #3 recommended MaxRAMPercentage, 66% | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Baseline 16 hours CICO | Test # | hh:mm:ss | 24 hours CICOCI/CO | Test # | hh:mm:ss | delta, default - xmx x hours CICO | 24 hours CI/CO | Test # | hh:mm:ss | delta, 66% - xmx | |
DI 100k Create #12 | 00:56:32 | These results after 1 container for mod-inventory stopped. A new 1 container was created. | |||||||||
DI 100k Create #11 | 01:39:09 | 4 1k jobs | stuckedstopped | DI 100k Create #11 | 00:55:58 | ||||||
DI 100k Create #10 | 01:03:19 | DI 100k Create #10 | 00:57:00 | ||||||||
DI 100k Create #9 | 00:59:40 | DI 100k Create #9 | 00:56:10 | ||||||||
DI 100k Create #8 | 00:55:01 | DI 100k Create #8 | 00:58:47 | 00:03:46 | DI 100k Create #8 | 00:55:2300:00:22 | |||||
DI 100k Create #7 | 00:54:43 | DI 100k Create #7 | 00:58:08 | 00:03:26 | DI 100k Create #7 | 02:46:27 | 3 1k jobs | stuckedstopped | |||
DI 100k Create #6 | 00:55:25 | DI 100k Create #6 | 00:56:09 | 00:00:44 | DI 100k Create #6 | 01:03:07 | 00:07:42 | ||||
DI 100k Create #5 | 00:54:45 | DI 100k Create #5 | 00:58:19 | 00:03:33 | DI 100k Create #5 | 01:03:37 | 00:08:52 | ||||
DI 100k Create #4 | 00:55:38 | DI 100k Create #4 | 00:54:27 | 00:01:11 | DI 100k Create #4 | 00:59:11 | 00:03:33 | ||||
DI 100k Create #3 | 00:53:30 | DI 100k Create #3 | 00:54:36 | 00:01:06 | DI 100k Create #3 | 00:58:34 | 00:05:04 | ||||
DI 100k Create #2 | 00:53:16 | DI 100k Create #2 | 00:53:03 | 00:00:13 | DI 100k Create #2 | 00:57:59 | 00:04:43 | ||||
DI 100k Create #1 | 00:52:51 | DI 100k Create #1 | 01:05:10 | 00:12:18 | DI 100k Create #1 | 01:05:42 | 00:12:50 | ||||
Results taken from test #8 | DI + | DI - | DI + | DI - | DI + | DI - | |||||
CI | 11621220 | 538 | CI | 9851078 | 467486 | CI | 12541240 | 470 | |||
CO | 18402311 | 978 | CO | 14761967 | 8091041 | CO | 21352121 | 955965 |
Detailed CICO response time for CICO with DI
...
Infrastructure
PTF -environment pcp1
- 10 m6i.2xlarge EC2 instances located in US East (N. Virginia)us-east-1
2 database instances, writer/reader
Name Memory GIB vCPUs max_connections db.r6g.xlarge
32 GiB 4 vCPUs 2731 - MSK tenant
- 4 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
Module | Task Def. Revision | Task Def. Revision with MaxRAMPercentage = by default | Task Def. Revision with MaxRAMPercentage = 66.0 | Module Version | Task Count | Mem Hard Limit | Mem Soft limit | CPU units | Xmx | MetaspaceSize | MaxMetaspaceSize | R/W split enabled | MaxRAMPercentage Tests | MaxRAMPercentage = recommended (66%) |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
pcp1-pvt | ||||||||||||||
Thu Apr 04 09:40:28 UTC 2024 | ||||||||||||||
mod-data-import | 20 | 23 | 24 | mod-data-import:3.0.7 | 1 | 2048 | 1844 | 256 | 1292 | 384 | 512 | FALSE | 70.1 | 66.0 |
mod-authtoken | 16 | 17 | 18 | mod-authtoken:2.14.1 | 2 | 1440 | 1152 | 512 | 922 | 88 | 128 | FALSE | 80.0 | 66.0 |
mod-configuration | 10 | 12 | 13 | mod-configuration:5.9.2 | 2 | 1024 | 896 | 128 | 768 | 88 | 128 | FALSE | 85.7 | 66.0 |
mod-users-bl | 10 | 11 | 12 | mod-users-bl:7.6.0 | 2 | 1440 | 1152 | 512 | 922 | 88 | 128 | FALSE | 80.0 | 66.0 |
mod-inventory-storage | 15 | 17 | 18 | mod-inventory-storage:27.0.4 | 2 | 4096 | 3690 | 2048 | 3076 | 384 | 512 | FALSE | 83.4 | 66.0 |
mod-circulation-storage | 14 | 15 | 16 | mod-circulation-storage:17.1.7 | 2 | 2880 | 2592 | 1536 | 1814 | 384 | 512 | FALSE | 70.0 | 66.0 |
mod-source-record-storage | 18 | 19 | 20 | mod-source-record-storage:5.7.5 | 2 | 5600 | 5000 | 2048 | 3500 | 384 | 512 | FALSE | 70.0 | 66.0 |
mod-inventory | 15 | 16 | 17 | mod-inventory:20.1.8 | 2 | 2880 | 2592 | 1024 | 1814 | 384 | 512 | FALSE | 70.0 | 66.0 |
mod-di-converter-storage | 18 | 19 | 20 | mod-di-converter-storage:2.1.5 | 2 | 1024 | 896 | 128 | 768 | 88 | 128 | FALSE | 85.7 | 66.0 |
mod-circulation | 14 | 15 | 16 | mod-circulation:24.0.11 | 2 | 2880 | 2592 | 1536 | 1814 | 384 | 512 | FALSE | 70.0 | 66.0 |
mod-pubsub | 13 | 14 | 15 | mod-pubsub:2.11.3 | 2 | 1536 | 1440 | 1024 | 922 | 384 | 512 | FALSE | 64.0 | 66.0 |
mod-users | 34 | 35 | 36 | mod-users:19.3.0-SNAPSHOT.677 | 2 | 1024 | 896 | 128 | 768 | 88 | 128 | FALSE | 85.7 | 66.0 |
mod-patron-blocks | 10 | 11 | 12 | mod-patron-blocks:1.9.0 | 2 | 1024 | 896 | 1024 | 768 | 88 | 128 | FALSE | 85.7 | 66.0 |
mod-source-record-manager | 17 | 19 | 20 | mod-source-record-manager:3.7.8 | 2 | 5600 | 5000 | 2048 | 3500 | 384 | 512 | FALSE | 70.0 | 66.0 |
nginx-okapi | 9 | nginx-okapi:2023.06.14 | 2 | 1024 | 896 | 128 | 0 | 0 | 0 | FALSE | 0.0 | |||
okapi-b | 11 | 12 | 13 | okapi:5.1.2 | 3 | 1684 | 1440 | 1024 | 922 | 384 | 512 | FALSE | 64.0 | 66.0 |
mod-feesfines | 11 | 12 | 13 | mod-feesfines:19.0.0 | 2 | 1024 | 896 | 128 | 768 | 88 | 128 | FALSE | 85.7 | 66.0 |
...
- Run baseline for Check-in / Check-out longevity test with Data import Create job with 100k file.
- Change revisions of modules with needed configuration of
JAVA_OPTS -
replaced XMX with MaxRAMPercentage in aa - Run CI/CO
- Run DI script after ramp-up period for CI/CO or at least 10-15 minutes
Additional information
- Grafana links
- Configuration #1
- CI/CO with DI http://carrier-io.int.folio.ebsco.com/grafana/d/elIt9zCnz/jmeter-performance-with-average-latency?orgId=1&from=1712266178037&to=1712268036922&var-percentile=95&var-test_type=baseline&var-test=circulation_checkInCheckOut_Poppy_5&var-env=int&var-grouping=1s&var-low_limit=250&var-high_limit=750&var-db_name=jmeter&var-sampler_type=All&var-Request=All
- CI/CO without DI http://carrier-io.int.folio.ebsco.com/grafana/d/elIt9zCnz/jmeter-performance-with-average-latency?orgId=1&from=1712269800000&to=1712271600000&var-percentile=95&var-test_type=baseline&var-test=circulation_checkInCheckOut_Poppy_5&var-env=int&var-grouping=1s&var-low_limit=250&var-high_limit=750&var-db_name=jmeter&var-sampler_type=All&var-Request=All
- Configuration #2
- CI/CO with DI http://carrier-io.int.folio.ebsco.com/grafana/d/elIt9zCnz/jmeter-performance-with-average-latency?orgId=1&from=1712586527108&to=1712588513315&var-percentile=95&var-test_type=baseline&var-test=circulation_checkInCheckOut_Poppy_5&var-env=int&var-grouping=1s&var-low_limit=250&var-high_limit=750&var-db_name=jmeter&var-sampler_type=All&var-Request=All
- CI/CO without DI http://carrier-io.int.folio.ebsco.com/grafana/d/elIt9zCnz/jmeter-performance-with-average-latency?orgId=1&from=1712589302156&to=1712589604755&var-percentile=95&var-test_type=baseline&var-test=circulation_checkInCheckOut_Poppy_5&var-env=int&var-grouping=1s&var-low_limit=250&var-high_limit=750&var-db_name=jmeter&var-sampler_type=All&var-Request=All
- Configuration #3
- CI/CO with DI http://carrier-io.int.folio.ebsco.com/grafana/d/elIt9zCnz/jmeter-performance-with-average-latency?orgId=1&from=1712690171214&to=1712690526374&var-percentile=95&var-test_type=baseline&var-test=circulation_checkInCheckOut_Poppy_5&var-env=int&var-grouping=1s&var-low_limit=250&var-high_limit=750&var-db_name=jmeter&var-sampler_type=All&var-Request=All
- CI/CO without DI http://carrier-io.int.folio.ebsco.com/grafana/d/elIt9zCnz/jmeter-performance-with-average-latency?orgId=1&from=1712687301153&to=1712689643642&var-percentile=95&var-test_type=baseline&var-test=circulation_checkInCheckOut_Poppy_5&var-env=int&var-grouping=1s&var-low_limit=250&var-high_limit=750&var-db_name=jmeter&var-sampler_type=All&var-Request=All