Performance testing of UXPROD-4070 - Reading Room Access

Performance testing of UXPROD-4070 - Reading Room Access

 

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) 

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

Module

Memory

Module

Memory

mod-data-export-worker-b

84.84

mod-inventory-b

80.47

mod-consortia-b

66.7

mod-orders-b

63.49

mod-dcb-b

60.42

mod-reading-room-b

52.41

mod-search-b

48.77

mod-agreements-b

48.26

mod-invoice-b

47.25

mod-notes-b

46.03

mod-copycat-b

45.8

mod-service-interaction-b

45.27

mod-calendar-b

44.72

mod-circulation-item-b

43.46

mod-data-import-b

43

mod-source-record-manager-b

42.77

mod-tags-b

42.69

mod-serials-management-b

42.21

mod-users-b

41.9

mod-licenses-b

40.57

mod-data-export-b

39.83

mod-erm-usage-harvester-b

38.79

edge-dcb-b

35.83

mod-permissions-b

35.58

edge-caiasoft-b

35.38

edge-dematic-b

34.93

edge-courses-b

34.77

mod-source-record-storage-b

34.61

mod-orders-storage-b

34.01

okapi-b

33.82

Memory graph do not show any growing trend during testing

 

CPU Utilization 

Reading room related services worked without any spikes.

Module

CPU

Module

CPU

mod-permissions-b

202.19

mod-users-bl-b

62.73

mod-users-b

36.07

mod-authtoken-b

27.61

mod-reading-room-b

25.16

nginx-okapi

22.47

mod-consortia-b

20.09

okapi-b

14.72

mod-inventory-b

11.1

mod-configuration-b

8.88

mod-quick-marc-b

7.3

mod-pubsub-b

7.21

mod-dcb-b

7.05

mod-audit-b

6.32

pub-okapi

5.55

mod-erm-usage-harvester-b

4.34

edge-dematic-b

3.66

mod-licenses-b

3.07

mod-kb-ebsco-java-b

2.72

mod-tags-b

2.63

mod-service-interaction-b

2.58

mod-circulation-item-b

2.55

mod-sender-b

2.44

mod-notes-b

2.44

mod-erm-usage-b

2.41

mod-batch-print-b

2.39

mod-template-engine-b

2.39

mod-rtac-b

2.39

mod-feesfines-b

2.37

mod-lists-b

2.36

 

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

Name

Memory GIB

vCPUs

Engine version

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

Module

Task Definition Revision

Module Version

Task Count

Mem Hard Limit

Mem Soft Limit

CPU Units

Xmx

Metaspace Size

Max Metaspace Size

Module

Task Definition Revision

Module Version

Task Count

Mem Hard Limit

Mem Soft Limit

CPU Units

Xmx

Metaspace Size

Max Metaspace Size

mod-remote-storage

1

mod-remote-storage:3.2.0

2

4920

4472

1024

3960

512

512

mod-finance-storage

1

mod-finance-storage:8.6.0

2

1024

896

1024

700

88

128

mod-ncip

1

mod-ncip:1.14.4

2

1024

896

128

768

88

128

mod-agreements