Users-search-filter test report [non-ECS] Trillium

Users-search-filter test report [non-ECS] Trillium

Overview

The purpose of this test is to define system behavior under load with user-search-filter workflow. Compare with previous report. Find any possible issues.

Current ticket: https://folio-org.atlassian.net/browse/PERF-1352

Related resource: https://folio-org.atlassian.net/wiki/x/AYABg

Previous report: https://folio-org.atlassian.net/wiki/x/fB8V

Summary

All tests passed successfully without errors, issues or anomalies

  • Both tests showed significant response times improvements comparing to previous result (Honeysuckle) by more than 10 times.

  • Main improvement happened on BD side in query:

    • SELECT jsonb,id FROM cs00000int_0001_mod_users.users WHERE get_tsvector(f_unaccent(users.jsonb->>?)) @@ tsquery_phrase(f_unaccent(?)) ORDER BY left(lower(f_unaccent(users.jsonb->?->>?)),?), lower(f_unaccent(users.jsonb->?->>?)), left(lower(f_unaccent(users.jsonb->?->>?)),?), lower(f_unaccent(users.jsonb->?->>?)) LIMIT ? OFFSET ?
  • Query improvement reduced CPU consumption by 80% during both tests.

  •  

Test Runs/Results/Comparison

Test #

Virtual Users

Duration (sec)

Test #

Virtual Users

Duration (sec)

1

5

1800

2

8

1800

Requests

Trillium
Test #1 (5 vUsers)

Honeysuckle
5 vUsers

Diff

Trillium
Test #2 (8 vUsers)

Honeysuckle
8 vUsers

Diff

avg

50th pct

50th pct

avg

50th pct

50th pct

 

GET_/groups?limit=40 sortby group

0.014

0.013

0.031

0.018 / 138.5%

0.017

0.017

0.053

0.036 / 211.8%

GET_/tags

0.011

0.010

0.022

0.012 / 120.0%

0.010

0.010

0.028

0.018 / 180.0%

GET_/users?limit=100 offset=100 query=(active="true")

0.037

0.36

4.751

4.715 / 13097.2%

0.043

0.042

7.292

7.250 / 17261.9%

GET_/users?limit=100 query=(active="true")

0.035

0.035

4.749

4.714 / 13468.6%

0.042

0.041

7.175

7.134 / 17400.0%

GET_/Departments

0.021

0.021

0.023

0.002 / 9.5%

0.024

0.024

0.034

0.010 / 41.7%

User transaction

0.118

0.115

9.625

9.510 / 8269.6%

0.135

0.134

15.884

15.750 / 11753.7%

 

 

Resource utilization

 

Service CPU Utilization

most loaded module is mod-users with ±1130% CPU usage.

 

image-20260708-111051.png

 

 

Instance CPU Utilization

Max CPU utilization of EC2 instance during test was 33%

image-20260708-111727.png

 

 

Service Memory Utilization

Memory remain stable during both tests. No signs of memory leaks.

image-20260708-111700.png

 

 

DB CPU Utilization

Significant DB optimization is visible. In previous tests DB CPU was 100% while now it’s 40% max.

Note. There was background job running from mod-search during tests - that’s explaining higher CPU usage than on ECS tests.

image-20260708-112046.png

 

 

DB Connections

 

image-20260708-112241.png

 

 

FreeableMemory

 

image-20260708-112343.png

 

DB load

 

image-20260708-112455.png

 

Top SQL-queries

Note: there was background job from mod-search running during tests. However this job didn’t affect overall response times.

image-20260708-112520.png

 

 

Appendix

Infrastructure

PTF - environment Trillium(tecp1)

  • tecon 8 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.2xlarge 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=3

      • revision - 26

  • OpenSearch 2.13 ptf-test cluster

    • r7g.2xlarge.search 4 data nodes

    • r7g.large.search 3 dedicated master nodes

      • Kafka consolidated topics enabled 

Module versions:

Module

Task Definition Revision

Module Version

Task Count

Mem Hard Limit

Mem Soft Limit

CPU Units

Xmx

Metaspace Size

Max Metaspace Size

R/W Split Enabled

Module

Task Definition Revision

Module Version

Task Count

Mem Hard Limit

Mem Soft Limit

CPU Units

Xmx

Metaspace Size

Max Metaspace Size

R/W Split Enabled

mod-remote-storage

1

mod-remote-storage:4.0.0

2

4920

4472

64

3960

512

512

false

mod-remote-storage - Sidecar 1

N/A

folio-module-sidecar:4.0.1.nb

N/A

1024

512

64

256

0

96

false

mod-finance-storage

1

mod-finance-storage:8.9.1

2

1024

896

64

700

88

128

false

mod-finance-storage - Sidecar 1

N/A

folio-module-sidecar:4.0.1.nb

N/A

1024

512

64

256

0

96

false

mod-ebsconet

1

mod-ebsconet:2.5.0

2

1248

1024

64

700

128

256

false

mod-ebsconet - Sidecar 1

N/A

folio-module-sidecar:4.0.1.nb

N/A

1024

512

64

256

0

96

false

mod-mosaic

1

mod-mosaic:1.1.0

2

1024

896

64

768

88

128

false

mod-mosaic - Sidecar 1

N/A

folio-module-sidecar:4.0.1.nb

N/A

1024

512

64

256

0

96

false

edge-sip2

2

edge-sip2:4.0.2

2

1024

896

64

768

88

128

false

mod-tags

1

mod-tags:3.0.0

2

1024

896

64

768

88

128

false

mod-tags - Sidecar 1

N/A

folio-module-sidecar:4.0.1.nb

N/A

1024

512

64

256

0

96

false

edge-courses

1

edge-courses:1.7.0

2

1024

896

64

768

88

128

false

mod-inventory-update

2

mod-inventory-update:5.1.2

2

1024

896

64

768

88

128

false

mod-inventory-update - Sidecar 1

N/A

folio-module-sidecar:4.0.1.nb

N/A

1024

512

64

256

0

96

false

mod-notify

1

mod-notify:3.5.0

2

1024

896

64

768

88

128

false

mod-notify - Sidecar 1

N/A

folio-module-sidecar:4.0.1.nb

N/A

1024

512

64

256

0

96