Test CPU settings for all modules and sidecars for Sunflower release

Test CPU settings for all modules and sidecars for Sunflower release

Overview

  • This documents contains PTF investigation results of the approach for setting SOFT CPU limits for most modules and sidecars to 64 or 128.  The goal is to identify potential bottlenecks, performance degradation or instability in the system. Report created in scope of PERF-1213: Test CPU settings for all modules and sidecars for Sunflower releaseClosed 

  • Parameter values for CPU were tested using the master script, which includes 315 key flows designed to measure response times. 

Summary

  • All tests completed as expected.

  • Multiple tests with defined CPU values (0, 64, 128) demonstrated that response times fluctuated between runs, showing no consistent correlation with the CPU parameter. So there's no obvious performance boost on some configuration. 

  • No memory leaks detected during the tests 

  • CPU utilization of the services increased proportionally to the applied load.

  • DB CPU was mostly on the same level, 67% in spikes.

Recommendations

  • As we cannot see difference in performance between tests with different CPU values we may choose cpu = 64 to minimize the number of EC2 instances during cluster start, except of those services where CPU values should be higher like folio-keycloak-b, mod-consortia-keycloak, mod-inventory, mod-inventory-storage, mod-circulation-b.

Test Runs

Test #

CPU value

Status

Test #

CPU value

Status

Test №1

0

Completed

Test №2

64

Completed

Test №3

128

Completed

Test Results

Test #

CPU value

Delta on all flows, Average %

Test #

CPU value

Delta on all flows, Average %

Test №1

0

Baseline

Test №2

64 vs 0

-1% (slight improvement)

Test №3

128 vs 0

0% (no difference)

The graph summarize the comparison of detailed results. We observe that deltas close to 0 for most of flows in both tests with CPU values 64 and 128. Spikes for some specific flows on the graph are temporary and disappear from test to test.

image-20251106-112006.png

 

This table contains response times and deltas for main master script flows and main API requests 

Test #1

cpu=0 (default) run2

Test #2

cpu=64 run2

Test #3

cpu 128 23/10 3  run   

Delta, ms

Delta, %

Delta, ms

Delta, %

Test #1

cpu=0 (default) run2

Test #2

cpu=64 run2

Test #3

cpu 128 23/10 3  run   

Delta, ms

Delta, %

Delta, ms

Delta, %

transaction

NumberOfSamples

Average, ms

pct90, ms

NumOfErrors

Error Rate (%)

transaction

NumberOfSamples

Average, ms

pct90, ms

NumOfErrors

Error Rate (%)

transaction

NumberOfSamples

Average, ms

pct90, ms

NumOfErrors

Error Rate (%)

CPU: 64 vs 0

CPU: 64 vs 0

CPU: 64 vs 0

CPU: 128 vs 0

CPU: 128 vs 0

TC_AIE: Create Invoices Workflow cs00000int

12

3615

4150

 

 

TC_AIE: Create Invoices Workflow cs00000int

12

3609

3963

 

 

TC_AIE: Create Invoices Workflow cs00000int

12

4045

6918

 

 

 

-6

0%

430

12%

TC_AIE: Edit Invoices Workflow cs00000int

12

6489

10292

 

 

TC_AIE: Edit Invoices Workflow cs00000int

12

6547

10388

 

 

TC_AIE: Edit Invoices Workflow cs00000int

12

5610

7838

 

 

 

58

1%

-879

-14%

TC_AIE: Invoices Approve cs00000int

6

2793

3273

 

 

TC_AIE: Invoices Approve cs00000int

6

2904

3290

 

 

TC_AIE: Invoices Approve cs00000int

6

2769

3405

 

 

 

111

4%

-24

-1%

TC_AIE: Paying Invoices cs00000int

6

2901

3055

 

 

TC_AIE: Paying Invoices cs00000int

6

2831

3039

 

 

TC_AIE: Paying Invoices cs00000int

6

2897

3074

 

 

 

-70

-2%

-4

0%

TC_APO: Create Invoice Lines

352

3746

3939

 

 

TC_APO: Create Invoice Lines

339

3956

4183

 

 

TC_APO: Create Invoice Lines

295

4518

5014

 

 

 

210

6%

772

21%

TC_APO: Invoices Approve cs00000int

4

2220

2288

 

 

TC_APO: Invoices Approve cs00000int

3

2208

2233

 

 

TC_APO: Invoices Approve cs00000int

3

2222

2363

 

 

 

-12

-1%

2

0%

TC_APO: Load invoice| Create |Add POLine 85|  Workflow cs00000int

4

633672

636922

 

 

TC_APO: Load invoice| Create |Add POLine 85|  Workflow cs00000int

3

662745

665165

 

 

TC_APO: Load invoice| Create |Add POLine 85|  Workflow cs00000int

3

760758

769246

 

 

 

29073

5%

127086

20%

TC_APO: Paying Invoices cs00000int

4

4604

4637

 

 

TC_APO: Paying Invoices cs00000int

3

4834

4900

 

 

TC_APO: Paying Invoices cs00000int

3

4658

4746

 

 

 

230

5%

54

1%

TC_BE: HOLDINGS_RECORD upload cs00000int_0001

1

56265

56265

 

 

TC_BE: HOLDINGS_RECORD upload cs00000int_0001

1

56644

56644

 

 

TC_BE: HOLDINGS_RECORD upload cs00000int_0001

1

56192

56192

 

 

 

379

1%

-73

0%

TC_BE: HOLDINGS_RECORD_rollback In-app edit cs00000int_0001

1

267790

267790

 

 

TC_BE: HOLDINGS_RECORD_rollback In-app edit cs00000int_0001

1

262835

262835

 

 

TC_BE: HOLDINGS_RECORD_rollback In-app edit cs00000int_0001

1

252530

252530

 

 

 

-4955

-2%

-15260

-6%

TC_BE: HOLDINGS_RECORD_rollback upload cs00000int_0001

1

56186

56186

 

 

TC_BE: HOLDINGS_RECORD_rollback upload cs00000int_0001

1

56035

56035

 

 

TC_BE: HOLDINGS_RECORD_rollback upload cs00000int_0001

1

56115

56115

 

 

 

-151

0%

-71

0%

TC_BE: ITEM upload cs00000int_0001

1

196568

196568

 

 

TC_BE: ITEM upload cs00000int_0001

1

206657

206657

 

 

TC_BE: ITEM upload cs00000int_0001

1

191652

191652

 

 

 

10089

5%

-4916

-3%

TC_BE: ITEM_rollback upload cs00000int_0001

1