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: - PERF-611Getting issue details... STATUS
Summary
Tests
Job profiles - PTF - Create 2, PTF - Updates Success - 1
Scenario | Data quantity |
---|---|
DI Create, DI Update (coherently) | 25K |
DI Create, DI Update (coherently) with CICO in parallel | DI - 25K CICO - 20 users |
CICO | 20 users |
Each scenario was tested on next configurations:
DB type | DB 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 agains 0.5-128 ACU Serverless and RDS 8xlarge agains 32-128 ACU Serverless (marked by color).
Process/request | RDS | Serverless | ||
---|---|---|---|---|
xlarge | 8xlarge | 0.5-128 ACU | 32-128 ACU | |
DI Create | 18 min | 9 min | 11 min (-7 min)​ | 14 min (+5 min)​ |
DI Update | 17 min | 10 min | 16 min (-1 min)​ | 11 min (+1 min)​ |
DI Create (with CICO in parallel) | 22 min | 9 min | 20 min (-2 min)​ | 11 min (+2 min)​ |
DI Update (with CICO in parallel) | 22 min, error* | 12 min | 25 min, error** (+3 min)​ | 12 min (0 min)​ |
CI, 95% | 0.68 | 0.718 | 0.806 (+0.126 sec) | 0.794 (+0.076 sec)​ |
CO, 95% | 1.247 | 1.251 | 1.393 (+0.146 sec)​ | 1.312 (+0.061 sec)​ |
CI (with DI Update in parallel), 95% | 1.36 | 1.193 | 1.277 (-0.083 sec)​ | 1.11 (-0.083 sec)​ |
CO (with DI Update in parallel), 95% | 2.335 | 2.062 | 2.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 CICO
There are more response time spikes during the test with xlarge configuration comparing to the tests with 8xlarge.
db.r6g.8xlarge DI with CICO
Serverless v2 (0.5 - 128 ACUs) DI with CICO
There is a spike at the begining of DI Update job. This can be connected ot mod-audit CPU increase at this moment.
Serverless v2 (32 - 128 ACUs) DI with CICO
Service CPU Utilization
db.r6g.xlarge DI without CICO
Maximum CPU utilization - 80% DI Create, 120% DI Update
db.r6g.xlarge DI with CICO
Maximum CPU utilization - 75% DI Create, 100% DI Update
db.r6g.8xlarge DI without CICO
Maximum CPU utilization - 135% DI Create, 160% DI Update
db.r6g.8xlarge DI with CICO
Maximum CPU utilization - 150% DI Create, 200% DI Update
Serverless v2 (0.5 - 128 ACUs) DI without CICO
Maximum 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%).
Serverless v2 (0.5 - 128 ACUs) DI with CICO
Maximum CPU utilization - 100% DI Create, 105% DI Update
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%).
Serverless v2 (32 - 128 ACUs) DI with CICO
Maximum CPU utilization - 100% DI Create, 160% DI Update
Memory Utilization
db.r6g.xlarge without DI CICO
db.r6g.xlarge DI with CICO
db.r6g.8xlarge DI without CICO
db.r6g.8xlarge DI with CICO
Serverless v2 (0.5 - 128 ACUs) DI without CICO
Serverless v2 (0.5 - 128 ACUs) DI with CICO
Serverless v2 (32 - 128 ACUs) DI without CICO
Serverless v2 (32 - 128 ACUs) DI with CICO
DB CPU Utilization
db.r6g.xlarge DI without CICO
db.r6g.xlarge DI with CICO
db.r6g.8xlarge DI without CICO
db.r6g.8xlarge DI with CICO
Serverless v2 (0.5 - 128 ACUs) DI without CICO
Serverless v2 (0.5 - 128 ACUs) DI with CICO
Serverless v2 (32 - 128 ACUs) DI without CICO
Serverless v2 (32 - 128 ACUs) DI with CICO
DB Connections
db.r6g.xlarge DI without CICO
db.r6g.xlarge DI with CICO
db.r6g.8xlarge DI without CICO
db.r6g.8xlarge DI with CICO
Serverless v2 (0.5 - 128 ACUs) DI without CICO
Serverless v2 (0.5 - 128 ACUs) DI with CICO
Serverless v2 (32 - 128 ACUs) DI without CICO
Serverless v2 (32 - 128 ACUs) DI with CICO
Database load
db.r6g.8xlarge DI without CICO
db.r6g.8xlarge DI with CICO
Serverless v2 (32 - 128 ACUs) DI without CICO
Serverless v2 (32 - 128 ACUs) DI with CICO
Appendix
Links
Grafana dashboard
db.r6g.xlarge DI with CICO
db.r6g.8xlarge DI with CICO
Serverless v2 (0.5 - 128 ACUs) DI with CICO
Serverless v2 (32 - 128 ACUs) DI with CICO
Configuration
DI
Version of modules: |
---|
Source Record Manager Module (mod-source-record-manager-3.5.6) |
Source Record Storage Module (mod-source-record-storage-5.5.2) |
Inventory Module (mod-inventory-19.0.2) |
Inventory Storage Module (mod-inventory-storage-25.0.3) |
Inventory Update Module (mod-inventory-update-2.3.1) |
Data Import Module (mod-data-import-2.6.2) |
quickMARC (mod-quick-marc-2.5.0) |
CICO
Version of modules: |
---|
Okapi (okapi-4.14.10) |
users (mod-users-19.0.0) |
Remote storage API module (mod-remote-storage-1.7.2) |
Pubsub (mod-pubsub-2.7.0) |
Patron Blocks Module (mod-patron-blocks-1.7.1) |
Inventory Storage Module (mod-inventory-storage-25.0.3) |
Inventory Module (mod-inventory-19.0.2) |
feesfines (mod-feesfines-18.1.1) |
Configuration (mod-configuration-5.9.0) |
Circulation Storage Module (mod-circulation-storage-15.0.2) |
Circulation Module (mod-circulation-23.3.4) |
authtoken (mod-authtoken-2.12.0) |
Environment
- UI endpoint: https://cornell-ptf.int.aws.folio.org/
- Okapi endpoint: https://okapi-cornell-ptf.int.aws.folio.org/
- Environment is configured to use shared MSK and ES
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
- RDS Configuration 4: Aurora Serverless, min ACU: 32, max ACU: 128