Versions Compared

Key

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

Overview

This page is created to investigate Aurora serverless performance by comparing DB xlarge, 8xlarge and Aurora serverless instance types under load running Data Import (DI) with Check-in Check-out (CICO) running as background. 

...

Table of Contents
Overview

This page is created to investigate Aurora serverless performance by comparing DB xlarge, 8xlarge and Aurora serverless instance types under load running Data Import (DI) with Check-in Check-out (CICO) running as background. 

Ticket:

Jira Legacy
serverSystem JIRA
serverId01505d01-b853-3c2e-90f1-ee9b165564fc
keyPERF-611

Summary

  • Tests showed that there is slight performance improvement for DI itself and DI with CICO comparing xlarge and 0.5-128 ACU. Show more details...
  • For CICO itself and CICO together with DI there is no significant influence of using serverless configuration. Show more details...
  • Serverless DB configuration consumes more CPU resources and less DB resources than RDS  configuration comparing Serverless (0.5 - 128 ACUs) and RDS db.r6g.xlarge configurations. Show more details...
  • Serverless DB configuration consumes less CPU and DB resources than RDS  configuration comparing Serverless (32 - 128 ACUs) and RDS db.r6g.8xlarge configurations. Show more details...

As a conclusion, there is no much degradation with usage of serverless DB. According to the results, it could be an adequate replacement for regular RDS.

Tests

Job profiles - PTF - Create 2, PTF - Updates Success - 1

CICO
ScenarioData quantity
DI Create 25K, DI Update (coherently)25K
DI Create 25K, DI Update 25K with CICO 20 users in parallel(coherently) with CICO  in parallel

DI - 25K

CICO - 20 users

CICO20 users


Each scenario was tested on next configurations:

DB typeDB configuration
RDS

db.r6g.xlarge

db.r6g.8xlarge

Serverless

Serverless v2 (0.5 - 128 ACUs)

Serverless v2 (32 - 128 ACUs)

Results

At the table below next results are compared: RDS xlarge against 0.5-128 ACU Serverless and RDS 8xlarge against 32-128 ACU Serverless (marked by color).

Process/requestRDSServerless
xlarge8xlarge0.5-128 ACU32-128 ACU
DI Create18 min9 min11 min (-7 min)​14 min (+5 min)​
DI Update17 min10 min16 min (-1 min)​11 min  (+1 min)​
DI Create (with CICO in parallel)22 min9 min20 min (-2 min)​11 min   (+2 min)​
DI Update (with CICO in parallel)22 min, error*12 min25 min, error** (+3 min)​12 min (0 min)​
CI, 95%0.680.7180.806 (+0.126 sec)0.794 (+0.076 sec)​
CO, 95%1.2471.2511.393 (+0.146 sec)​1.312 (+0.061 sec)​
CI (with DI Update in parallel), 95%1.361.1931.277 (-0.083 sec)​1.11 (-0.083 sec)​
CO (with DI Update in parallel), 95%2.3352.0622.321 (-0.014 sec)​1.963 (-0.099 sec)​

*some records were discarded

**Error - io.vertx.core.impl.NoStackTraceThrowable

Response time

db.r6g.xlarge DI with CICOCICO

There are more response time spikes during the test with xlarge configuration comparing to the tests with 8xlarge.

db.r6g.8xlarge DI with CICO

Image Modified

Serverless v2 (0.5 - 128 ACUs) DI

...

with CICO

There is a spike at the beginning of DI Update job. This can be connected to mod-audit CPU increase at this moment.

Image Modified

Serverless v2 (32 - 128 ACUs) DI

...

with CICO

Service CPU Utilization

db.r6g.xlarge DI without CICO

Image RemovedMaximum CPU utilization - 80% DI Create, 120% DI Update

Image Added

db.r6g.xlarge DI with CICO

Image Removed

db.r6g.8xlarge DI without CICO

Image RemovedMaximum CPU utilization - 75% DI Create, 100% DI Update

Image Added

db.r6g.8xlarge DI without CICO

Maximum CPU utilization - 135% DI Create, 160% DI Update

Image Added

db.r6g.8xlarge DI with CICO

...

Maximum CPU utilization - 150% DI Create, 200% DI Update

Image Added

Serverless v2 (0.5 - 128 ACUs) DI without CICO

Image RemovedMaximum CPU utilization - 110% DI Create, 125% DI Update

Serverless v2 (0.5 - 128 ACUs) DB configuration consumes more CPU resources than RDS db.r6g.xlarge configuration (110%-125% compared to 80%-120%).

Image Added

Serverless v2 (0.5 - 128 ACUs) DI with CICO

Image RemovedMaximum CPU utilization - 100% DI Create, 105% DI Update

Image Added

Serverless v2 (32 - 128 ACUs) DI without CICO

...

Maximum CPU utilization - 100% DI Create, 150% DI Update

Serverless v2 (32 - 128 ACUs) DB configuration consumes less CPU resources than RDS db.r6g.8xlarge configuration (100%-150% compared to 135%-160%).

Image Added

Serverless v2 (32 - 128 ACUs) DI with

...

CICO

Maximum CPU utilization - 100% DI Create, 160% DI Update

Image Added

Memory Utilization

db.r6g.xlarge without DI CICO

Image RemovedImage Added

db.r6g.xlarge DI with CICO

Image RemovedImage Added

db.r6g.8xlarge DI without CICO

Image RemovedImage Added

db.r6g.8xlarge DI with CICO

Image RemovedImage Added

Serverless v2 (0.5 - 128 ACUs) DI without CICO

Image RemovedImage Added

Serverless v2 (0.5 - 128 ACUs) DI with CICO

Image RemovedImage Added

Serverless v2 (32 - 128 ACUs) DI without CICO

Image RemovedImage Added

Serverless v2 (32 - 128 ACUs) DI with CICO

Image RemovedImage Added

DB CPU Utilization

db.r6g.xlarge DI without CICO

...

Maximum DB CPU utilization - 90%

Image Added

db.r6g.xlarge DI with CICO

Image Removed

...

Maximum DB CPU utilization - 90%

Image Added

db.r6g.8xlarge DI without CICO

Maximum DB CPU utilization - 37%

Image Added

db.r6g.8xlarge DI with CICO

Maximum DB CPU utilization - 37%

Image Added

Serverless v2 (0.5 - 128 ACUs) DI without CICO

Image Removed

Maximum DB CPU utilization - 30%

Serverless v2 (0.5 - 128 ACUs) DB configuration consumes less DB CPU resources than RDS db.r6g.

...

Image Removedxlarge configuration (30% compared to 90%).

Image Added

Serverless v2 (0.5 - 128 ACUs) DI

...

with CICO

Image RemovedMaximum DB CPU utilization - 25%

Image Added

Serverless v2 (

...

32 - 128 ACUs) DI

...

without CICO

Maximum DB CPU utilization - 25%

Serverless v2 (32 - 128 ACUs

...

Image Removed) DB configuration consumes slightly less DB CPU resources than RDS db.r6g.8xlarge configuration (25% compared to 37%).

Image Added

Serverless v2 (32 - 128 ACUs) DI with CICO

Image RemovedMaximum DB CPU utilization - 25%

Image Added

DB Connections

db.r6g.xlarge DI without CICO

Image RemovedImage Added

db.r6g.xlarge DI with CICO

Image RemovedImage Added

db.r6g.8xlarge DI without CICO

Image RemovedImage Added

db.r6g.8xlarge r6g.8xlarge DI with CICO

Image Added


Serverless v2 (0.5 - 128 ACUs) DI without CICO

Image Added

Serverless v2 (0.5 - 128 ACUs) DI with CICO

Image RemovedImage Added

Serverless v2 (

...

32 - 128 ACUs) DI without CICO

Image RemovedImage Added

Serverless v2 (

...

32 - 128 ACUs) DI with CICO

...

Image Added

Database load

db.r6g.8xlarge DI without CICO

Image Added

db.r6g.8xlarge DI with CICO

Image Added

Serverless v2 (32 - 128 ACUs) DI without CICO

...

Image Added

Serverless v2 (32 - 128 ACUs) DI with CICO

...

Image Added

Appendix

Grafana dashboard

db.r6g.xlarge DI with CICO

http://carrier-io.int.folio.ebsco.com/grafana/d/SqzWB26nk/jmeter-performance-check-in-check-out?orgId=1&from=1690186885745&to=1690192449004&var-percentile=95&var-test_type=baseline&var-test=circulation_checkInCheckOut_Orchid_cptf2_4&var-env=int&var-grouping=1s&var-low_limit=250&var-high_limit=750&var-db_name=jmeter&var-sampler_type=All

db.r6g.8xlarge DI with CICO

http://carrier-io.int.folio.ebsco.com/grafana/d/SqzWB26nk/jmeter-performance-check-in-check-out?orgId=1&from=1690206826647&to=1690209403208&var-percentile=95&var-test_type=baseline&var-test=circulation_checkInCheckOut_Orchid_cptf2_4&var-env=int&var-grouping=1s&var-low_limit=250&var-high_limit=750&var-db_name=jmeter&var-sampler_type=All

Serverless v2 (0.5 - 128 ACUs) DI with CICO

http://carrier-io.int.folio.ebsco.com/grafana/d/SqzWB26nk/jmeter-performance-check-in-check-out?orgId=1&from=1689860038636&to=1689864442762&var-percentile=95&var-test_type=baseline&var-test=circulation_checkInCheckOut_Orchid_cptf2_4&var-env=int&var-grouping=1s&var-low_limit=250&var-high_limit=750&var-db_name=jmeter&var-sampler_type=All

Serverless v2 (32 - 128 ACUs) DI with CICO

http://carrier-io.int.folio.ebsco.com/grafana/d/SqzWB26nk/jmeter-performance-check-in-check-out?orgId=1&from=1689934923312&to=1689937778313&var-percentile=95&var-test_type=baseline&var-test=circulation_checkInCheckOut_Orchid_cptf2_4&var-env=int&var-grouping=1s&var-low_limit=250&var-high_limit=750&var-db_name=jmeter&var-sampler_type=All

Configuration

DI

Version of modules:

Source Record Manager Module (mod-source-record-manager-3.5.6
.2
)
Source Record Storage Module (mod-source-record-storage-5.
6
5.
5
2)
Inventory
Module 
Module (mod-inventory-
20
19.0.
4
2)
Inventory Storage
Module 
Module (mod-inventory-storage-
26
25.0.
0
3)
Inventory Update
Module 
Module (mod-inventory-update-2.3
.0
.1)
Data Import
Module 
Module (mod-data-import-2.
7
6.
1
2)
quickMARC 
quickMARC (mod-quick-marc-
3
2.
0
5.0)

CICO

Version of modules:

Okapi (okapi-

5

4.

0

14.

1

10)

users (mod-users-19.

1

0.

1

0)

Remote storage API module (mod-remote-storage-

2

1.

0

7.2)

Pubsub (mod-pubsub-2.

9

7.

1

0)

Patron Blocks Module (mod-patron-blocks-1.

8

7.

0

1)

Inventory Storage Module (mod-inventory-storage-

26

25.0.

0

3)

Inventory Module (mod-inventory-

20

19.0.

4

2)

feesfines (mod-feesfines-18.

2

1.1)

Configuration (mod-configuration-5.9.

1

0)

Circulation Storage Module (mod-circulation-storage-

16

15.0.

0

2)

Circulation Module (mod-circulation-23.

5

3.4)

authtoken (mod-authtoken-2.

13

12.0)

Environment

Created in INT account us-east-1 region, cluster name cptf2, created with snapshot of Cornell Test environment.

Task count: HA – okapi x3, mod-data-import, mod-data-export, mod-quick-marc, mod-data-export-spring x1, all other modules x2
OpenSearch: fse - shared domain (6 r6g.large.search datanodes)
MSK: dedicated cluster - total 4 brokers (kafka.m5.large)

  • RDS Configuration 1: db.r6g.8xlarge instance, Aurora PostgreSQL 13.9
  • RDS Configuration 2: db.r6g.xlarge instance, Aurora PostgreSQL 13.9
  • RDS Configuration 3: Aurora Serverless, min ACU: 0.5, max ACU: 128 RD
  • RDS Configuration 4: Aurora Serverless, min ACU: 32, max ACU: 128