Master Script stress test - NLA report

Master Script stress test - NLA report

Overview

The purpose of this test is to define system behavior under stress load. Define (if exists) any anomalies, memory leaks, errors. 

Summary

  • Few test sets was performed:

    • 2,3,6,8 threads tests with xlarge (default) DB;

    • 2,3,6,8 threads tests with 2xlarge DB;

    • test with longer (4 hr) duration for xlarge DB with 8 threads

    • 3 threads test with 4xlarge DB.

  • During mos of a test we've observed that DB CPU usage reached 100% almost from the beginning of a test. For 2xlarge database size CPU usage decreased from 99,4% to 86.9% for 2 threads.

  • There is performance degradation with increasing load (from 2 threads to 3,6,8). See corresponding charts in Results and ComparisonS section

  • With increasing DB to 2xlarge performance degradation is not so rapid as it's for standard xlarge DB. However degradation pattern is the same for both test sets

  • For 90% of the workflows, degradation is above 50% with stress load compared to normal load. The top 10 most affected are (with response time degradation in %):

    1. ILR_TC: Get ItemId - 709%

    2. VIR_TC: inventory record monitoring - 579%

    3. VTT_TC: Inventory View Instance Source - 531%

    4. VRO_TC: View Vendor - 420%

    5. LO_TC: View Ledgers - 335%

    6. VB_TC: Inventory Choose Instance - 326%

    7. VH_TC: Inventory View Holdings - 322%

    8. VH_TC: Inventory Choose Holdings -308%

    9. ETT_TC: Edit Bib RecordTagTable Group - 304%

    10. VRO_TC: Edit Vendor - 289%

 

 * - Stress load of 2 threads is 5-10 times (it depends on workflow) bigger than the average load

Recommendations & Jiras (Optional)

PERF-525: NLA: Improve performance of Fixed load testsClosed

  • It is recommended to increase database size to 2x large: General response time for all workflows is about 24% improved for 2xlarge database size compared to xlarge (for stress test) and improved about 23% for a normal load test. Tested with default services configuration and without Data Import.

  • Changes in configurations for services do not improve response time for workflows but for mod-circulation, it should be revised due to configuration issues found in the task definition: excessive parameters
                         "-XX:MetaspaceSize=88m -XX:MaxMetaspaceSize=128m -Xmx768m"

  • If release versions for mod-source-record-storage will be 5.6.5 and for mod-source-record-manager - 3.6.2 then changes of parameters DB_MAXPOOLSIZE for both modules, and DB_CONNECTION_TIMEOUT for mod-source-record-storage needed to avoid 

    PERF-582 - Response 500 for NLA normal load test with Data Import job (2 SP) BLOCKED :

{
    "name": "DB_MAXPOOLSIZE",
    "value": "500"
},
{
    "name": "DB_CONNECTION_TIMEOUT",
    "value": "60"
},

Test Runs 

Test #

Test Conditions

Duration 

Load generator size (recommended)

Load generator Memory(GiB) (recommended)

Notes

(Optional)

1.

2 threads Master script

60 mins

t3.xlarge

14

xlarge DB

2.

3 threads Master script

60 mins

t3.xlarge

14

xlarge DB

3

6 threads Master script

60 mins

t3.xlarge

14

xlarge DB

4

8 threads Master script

60 mins

t3.xlarge

14

xlarge DB

5

2 threads Master script

60 mins

t3.xlarge

14

2xlarge DB

6

3 threads Master script

60 mins

t3.xlarge

14

2xlarge DB

7

6 threads Master script

60 mins

t3.xlarge

14

2xlarge DB

8

8 threads Master script

60 mins

t3.xlarge

14

2xlarge DB

9

8 threads Master script

4 hr

t3.xlarge

14

xlarge DB 

10

3 threads Master script

60 mins

t3.xlarge

14

4xlarge DB

 

 

Results and Comparisons

Performance dependency with increasing load with xlarge DB

Workflow

 2 threads response times

  3 threads response times

delta 2 vs 3 threads

   6 threads response times

 delta 3 vs 6 threads

 8 threads response times

  delta 6 vs 8 threads

Workflow

 2 threads response times

  3 threads response times

delta 2 vs 3 threads

   6 threads response times

 delta 3 vs 6 threads

 8 threads response times

  delta 6 vs 8 threads

AIE_TC: View Invoices Workflow

7,191

6,991

-0,2

11,612

4,621

14,218

2,606

BLS_TC: Blacklight simulation

3,932

5,073

1,141

7,276

2,203

9,347

2,071

ETT_TC: Edit Bib RecordTagTable Group

17,057

40,933

23,876

58,72

17,787

97,45

38,73

FYR_TC: Load Finance Ledgers Rollover

0,39

0,522

0,132

0,536

0,014

0,773

0,237

ILR_TC: Create ILR

1,482

2,414

0,932

2,446

0,032

3,072

0,626

ILR_TC: Get ItemId

1,731

4,232

2,501

5,574

1,342

9,698

4,124

ILR_TC: Get RequesterId

0,045

0,042

-0,003

0,058

0,016

0,062

0,004

IO_TC: Create Invoices Workflow

3,745

3,754

0,009

5,672

1,918

7,375

1,703

IO_TC: Delete Invoices Workflow

3,158

3,151

-0,007

5,2

2,049

6,682

1,482

IO_TC: Edit Invoices Workflow

5,705

5,723

0,018

9,602

3,879

12,208

2,606

IO_TC: View Invoices Workflow

2,53

2,54

0,01

4,07

1,53

5,067

0,997

IRO_TC: Delete Item

6,702

15,339

8,637

19,647

4,308

32,794

13,147

IRO_TC: Edit Item

6,69

15,567

8,877

18,724

3,157

29,134

10,41

IRO_TC: View Item

11,602

31,375

19,773

39,99

8,615

62,725

22,735

LO_TC: Create Ledgers

1,035

1,023

-0,012

1,381

0,358

1,476

0,095

LO_TC: Delete Ledgers

0,426

0,503

0,077

0,785

0,282

0,974

0,189

LO_TC: Edit Ledgers

0,43

0,497

0,067

0,794

0,297

0,976

0,182

LO_TC: View Ledgers

0,431

0,498

0,067

0,78

0,282

0,99

0,21

POO_TC Create Order

3,047

2,779

-0,268

3,668

0,889

4,369

0,701

POO_TC Delete Order

2,252

2,182

-0,07

3,034

0,852

4,458

1,424

POO_TC Edit Order

3,375

3,365

-0,01

4,524

1,159

6,428

1,904

POO_TC View Order

1,987

2,03

0,043

2,658

0,628

3,915

1,257

PRO_TC: Create User

2,257

2,356

0,099

2,84

0,484

3,009

0,169

PRO_TC: Delete User

1,202

1,296

0,094

1,51

0,214

1,713

0,203

PRO_TC: Edit User

2,447

2,613

0,166