[Nolana] Check-IN + Item-level requests

[Nolana] Check-IN + Item-level requests

Overview

The target of the test is to investigate the impact of the Check-In activities with previously created item-level requests and to compare tested results with direct non-functional requirements (see Jira ticket).

PERF-349: * Circulation checkin of items with multiple Item-level holdsClosed

Summary

  • Test results don't show a substantial negative impact of Check-In activities with previously created item-level requests:

    • The average response time of CI was approx. 340 ms and meet NFR (500 ms).

  • Expected high memory usage was detected for mod-circulation - 76%  

  • All modules show expected CPU behaviour and typical workload - 28.4% in a peak

Test Runs 

Test #

Test Conditions

Duration 

Load generator size (recommended)

Load generator Memory(GiB) (recommended)

1.

25 users CI

30 min

t3.medium

1

Results

Response Times 

Grafana: http://carrier-io.int.folio.ebsco.com/grafana/d/elIt9zCnz/jmeter-performance-test-copy?orgId=1&from=1676283329190&to=1676285621802&var-percentile=95&var-test_type=baseline&var-test=circulation_Check-IN_Nolana_ILR&var-env=int&var-grouping=1s&var-low_limit=250&var-high_limit=750&var-db_name=jmeter&var-sampler_type=All

 

Check-in

 

Check-in

 

Average, ms

 

Check-in Controller

Test 1

340.13

Comparisons

Based on PERF-349: * Circulation checkin of items with multiple Item-level holdsClosed's requirement, test results are compared with NFR ("Expected response time: 500ms with 10 item-level holds").

Memory Utilization

CPU Utilization 

RDS CPU Utilization 

Appendix

Infrastructure

PTF -environment ncp3 [ environment name] 

  • 9 m6i.2xlarge EC2 instances located in US East (N. Virginia)us-east-1 [Number of ECS instances, instance type, location region]

  • 2 instances of db.r6.xlarge database instances: Writer & reader instances

  • MSK ptf-kakfa-3 [ kafka configurations]

    • 4 kafka.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=3

 

Modules memory and CPU parameters:

Modules

Version

Task Definition

Running Tasks 

CPU

Memory (Soft/Hard Limits)

MaxMetaspaceSize

Xmx

Modules

Version

Task Definition

Running Tasks 

CPU

Memory (Soft/Hard Limits)

MaxMetaspaceSize

Xmx

mod-inventory

19.0.2

7

2

1024

2592/2880

512

1814

mod-inventory-storage

25.0.3

3

2

1024

1952/2208

512

1440

okapi

4.14.7

1

3

1024

1440/1684

512

922

mod-source-record-storage

5.5.2

4

2

1024

1440/1536

512

908

mod-source-record-manager

3.5.6

4

2

1024

3688/4096

512

2048

mod-data-import

2.6.2

4

1

256

1844/2048

512

1292

mod-data-import-cs

1.15.1

1

2

128

896/1024

128

768

mod-quick-marc

2.5.0

3

1

128

2176/2288

512

1664

mod-feesfines

18.1.1

3

2

128

896/1024

128

768

mod-patron-blocks

1.7.1

4

2

1024

896/1024

128

768

mod-pubsub

2.7.0

4

2

1024

1440/1536

512

922

mod-authtoken

2.12.0

3

2

512

1152/1440

128

922

mod-circulation-storage

15.0.2

3

2

1024

1440/1536

512

896

mod-circulation

23.3.2

3

2

1024

896/1024

128

768

mod-configuration

5.9.0

3

2

128

896/1024

128

768

mod-users

19.0.0

4

2

128

896/1024

128

768

mod-remote-storage

1.7.1

3

2

128

1692/1872

512

1178

Methodology/Approach

  1. Created hundreds of items with 10 item-level requests attached. These items were also checked out.

  2. Executed check ins with 25 concurrent vUsers using these items for 30 minutes.  (On carrier-io used the artifact "circulation_Check-IN_Nolana_ILR.zip")

  3. Scripts used:

    1. DB Refresh - checkin-checkout-db-restore.sql 

    2. DB Update - circ-data-load_item-level-requests.sh

Additional Screenshots of graphs or charts