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
db.r6g.8xlarge DI with CICO
Serverless v2 (0.5 - 128 ACUs) DI without CICO
Serverless v2 (32 - 128 ACUs) DI without CICO
Service 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
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
Top SQL
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