Performance testing of UXPROD-4070 - Reading Room Access
- 1 Overview
- 2 Summary
- 3 Test Runs
- 4 Results
- 4.1 Memory Utilization
- 4.2 CPU Utilization
- 4.3 MSK cluster
- 4.3.1 CPU (User) usage by broker
- 4.3.2 Disk usage by broker
- 4.4 Open Search
- 4.4.1 Dedicated master nodes
- 4.4.2 Data nodes
- 4.5 RDS CPU Utilization
- 4.6 RDS Database Connections
- 5 Appendix
Overview
The purpose of the tests is to measure API calls in Quesnelia release in scope of Performance testing of UXPROD-4070 - Reading Room Access. Ticket:
PERF-908: Performance testing of UXPROD-4070 - Reading Room AccessClosed
A new feature was deployed as a new App - Reading Room to qcon environment. It should support maximum 25 simultaneous requests to reading rooms API.
Summary
Tests finished successfully for all Deny and Allow access flows. No errors.
Average response time for POST requests were 30 ms and for the whole flow - 145 ms.
Resource utilization:
Module CPU
mod-users-bl-b - 63%, mod-users-b - 36%, mod-authtoken-b - 27%, mod-reading-room-b - 25%
Module Memory
mod-data-export-worker-b - 85%, mod-inventory-b - 80%, mod-consortia-b - 66%, mod-orders-b - 64%, mod-dcb-b - 60%, mod-reading-room-b - 52%, mod-search-b - 48%
RDS CPU - 22%
Test Runs
This table contains response time
Test # | Test Conditions | Duration | Status |
1. | 25 vUsers simultaneously | 20 mins | Success |
Results
The table contains results for testing API requests. TC_RRO is a transaction controller which include all steps during the flow (entering Reading Room App, searching patron by patron id, deny or allow action with 50% probability).
Requests | Executions | Response Times (ms) | ||
|---|---|---|---|---|
Label | #Samples | FAIL | Average | 90th pct |
TC_RRO: Deny access flow | 3369 | 0 | 146 | 166 |
TC_RRO: Allow access flow | 3382 | 0 | 147 | 166 |
POST Deny /reading-room/{readingRoomsId}/access-log | 3370 | 0 | 30 | 34 |
POST Allow/reading-room/{readingRoomsId}/access-log | 3382 | 0 | 30 | 34 |
|
|
|
|
|
GET /users/configurations/entry | 6758 | 0 | 21 | 27 |
GET /users | 6754 | 0 | 32 | 41 |
GET /reading-room-patron-permission/{patronId} | 6754 | 0 | 34 | 37 |
GET /reading-room | 6758 | 0 | 28 | 30 |
Memory Utilization
Memory graph do not show any growing trend during testing
CPU Utilization
Reading room related services worked without any spikes.
MSK cluster
CPU (User) usage by broker
Disk usage by broker
Open Search
Dedicated master nodes
Data nodes
RDS CPU Utilization
RDS CPU utilized 22% during testing
RDS Database Connections
Appendix
Infrastructure
PTF - environment qcon
10 m6g.2xlarge EC2 instances located in US East (N. Virginia)us-east-1
1 database instances, writer
Name | Memory GIB | vCPUs | Engine version |
|---|---|---|---|
db.r6g.xlarge | 32 GB | 4 vCPUs | 16.1 |
MSK tenant
2 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=2
Open Search fse
Data nodes Instance type: r6g.xlarge.search
Number of nodes: 6, dedicated master nodes - 3
Version: OpenSearch 2.13 (latest)
EBS volume size (GiB): 500 GiB
Number of records in DB:
cs00000int_0001
instances - 6828236
items - 7859770
holdings - 7328737
cs00000int_0002
instances - 1163315
items - 1754121
holdings - 1332559
cs00000int_0003
instances - 1135806
items - 1735291
holdings - 1309387
Modules