Check-in-check-out Test Report Sunflower [non-ECS] CSP1 & CSP2

Check-in-check-out Test Report Sunflower [non-ECS] CSP1 & CSP2

Overview

  • Regression testing of Circulation Check-in Check-out (CICO) workflow in Sunflower CSP1 & CSP2 (CSP2 with LightWaightToken)in scope of https://folio-org.atlassian.net/browse/PERF-1195 ;

  • The purpose of CICO testing:

    • Define system behaviour (ECS resource usage, DB resource usage, queries) with different load;

    • Measure response times of Sunflower CSP1&CSP2 and compare them with Sunflower to define trends;

    • Find anomalies and performance issues if any. If possible recommend improvements;

 

Summary

  • Most Check-In Check-Out tests finished successfully with few failed requests per test due to data issues.

  • Tests for 8,20,30 and 75 users were performed on row, no issues defined “in between tests“. No signs of memory leaks on related modules.

  • Response times are 9-14% faster compared to Sunflower for Check-Out and 8-16% faster for Check-in.

  • Longevity test response times are 7.2% slower for Check out and 2.6% slower for Check in compared with Sunflower.

 

Test Runs 

Test #

vUsers

Ramp-up, sec

Duration, sec 

Test #

vUsers

Ramp-up, sec

Duration, sec 

1

8

80

2700

2

20

200

2700

3

30

300

2700

4

75

750

2700

5

30

300

36000

 

Results

 

Label

Response times (ms)

8 vUsers  (test #1)

20 vUsers  (test #2)

30 vUsers  (test #3)

75 vUsers  (test #4)

#Samples

95th pct

Avg.

#Samples

95th pct

Avg.

#Samples

95th pct

Avg.

#Samples

95th pct

Avg.

Check-In Controller

1992

636

414

4900

575

396

7330

615

403

16801

1132

653

Check-Out Controller

2586

1228

905

6523

1181

875

9792

1276

889

22391

2436

1456

POST_circulation/check-in-by-barcode (Submit_barcode_checkin)

1992

252

196

4901

263

183

7331

262

181

16803

573

299

POST_circulation/check-out-by-barcode (Submit_barcode_checkout)

2586

425

339

6523

436

326

9792

481

332

22406

1274

619

GET_circulation/loans (Submit_barcode_checkout)

2586

196

148

6523

193

143

9792

210

146

22393

507

251

 

Comparisons vs Sunflower

 

Response Times, milliseconds

8 vUsers   (test #1)

20 vUsers   (test #2)

30 vUsers   (test #3)

75 vUsers   (test #4)

Requests

Sunslower CSP1

Sunflower

 

 

Sunslower CP1

Sunflower

 

 

Sunslower CP1

Sunflower

 

 

Sunslower CP1

Sunflower

 

 

Label

Average

Delta,ms

Delta%

Average

Delta,ms

Delta%

Average

Delta,ms

Delta%

Average

Delta,ms

Delta,%

Check-Out Controller

905

995

-90

-9.05%

875

1000

-125

-12.50%

889

1040

-151

-14.52%

1456

1629

-173

-10.62%

Check-In Controller

414

450

-36

-8.00%

396

456

-60

-13.16%

403

464

-61

-13.15%

653

782

-129

-16.50%

 

Comparison of longevity test

30 vUsers Longevity  (test #5)

30 vUsers Longevity  (test #5)

Response Times, milliseconds avg.

Sunflower comparison

Requests

Sunflower CP1

Sunflower

Delta,ms

Delta,%

Check-Out Controller

1158

1080

+78

+7.22%

Check-In Controller

425

414

+11

+2.66%

 

 

 

Service CPU utilization

most used modules:

module

max CPU

module

max CPU

mod-inventory-storage-b

158%

mod-users-keycloak-b

130%

mod-roles-keycloak-b

103%

2025-09-09_13h39_34.png

 

Service memory usage

Memory usage showed stable trends with no spikes and growths.

 

2025-09-09_13h46_09.png

 

Database metrics

2025-09-09_13h53_37.png

 

2025-09-09_13h56_21.png

 

 

2025-09-09_13h57_53.png

 

 

2025-09-09_13h58_57.png

 

 

Longevity test

Service CPU utilization

 

2025-09-09_14h17_01.png

 

Service memory usage

 

2025-09-09_14h19_00.png

 

Database metrics

2025-09-09_14h20_54.png
first spike.png
second spike.png

There were several autovacuum queries that could affect the performance during the test, and which we see as spikes on the graph.

 

2025-09-09_14h22_17.png

 

2025-09-09_14h23_34.png
2025-09-09_14h23_48.png

 

Appendix

Infrastructure

PTF -environment secp1

PTF -environment secp1

  • secp1 7 r7g.2xlarge EC2 instances located in US East (N. Virginia)us-east-1 

  • 1 instance of db.r7g.xlarge database instance: Writer instance

  • MSK fse-test

    • 4 kafka.m7g.xlarge brokers in 2 zones (2 brokers per zone)

      • Apache Kafka version 3.7.x, metadata mode - KRaft

      • EBS storage volume per broker 300 GiB

      • auto.create.topics.enable=true

      • log.retention.minutes=480

      • default.replication.factor=2

      • revision - 26

  • OpenSearch 2.13 ptf-test cluster

    • r7g.2xlarge.search 4 data nodes

    • r7g.2xlarge.search3 dedicated master nodes

secp1-pvt resources

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

11

mod-remote-storage:3.4.3

2

4920

4472

0

3960

512

512

mod-remote-storage - Sidecar 1

N/A

folio-module-sidecar:3.0.8

N/A

1024

512

0

256

0

96

mod-finance-storage

10

mod-finance-storage:8.8.4

2

1024

896

0

700

88

128

mod-finance-storage - Sidecar 1

N/A

folio-module-sidecar:3.0.8

N/A

1024

512

0

256

0

96

mod-ebsconet

10

mod-ebsconet:2.4.0