[Eureka] Check-in-check-out Test Report (Quesnelia)

[Eureka] Check-in-check-out Test Report (Quesnelia)

Overview

The test's target is to investigate the behaviour of the Check-In/Check-Out activities during fixed load tests.https://folio-org.atlassian.net/browse/PERF-879

Summary

Check-In/Check-Out tests on Quesnelia release (Eureka) in QECP1 environment carried out with 8, 20, 30, 75 virtual users during 45 minutes and with 30 virtual users during longevity test (24 hours) to detect any trends in resource utilization

45 minute tests

  • Response times in tests with 8, 20, 30 virtual users delta was 200 ms. The lowest average response times were with 20 virtual users test: Check-In - 625 ms, average Check-Out - 1356 ms

  • The highest average response times showed 75 vUsers test: Check-In - 4 sec 610 ms, Check-Out - 12 sec 589 ms (whole test), Check-In - 622 ms, Check-Out - 1540 ms (before saturation point with 33 vUsers)

Longevity test

  • Longevity test was running 10 hours and began failing because of token expiration. Possible reason here is SSO Session Max limitation 10 hours (fs09000000/realm-settings/sessions).

    • Average response times in 10 hours test for Check-In - 1003 ms, Check-Out - 2870 ms

    • First 5 hours 30 minutes average response times Check-In - 770 ms, Check-Out - 1773 ms, the next 4 hours 30 minutes - Check-In - 1295 ms, Check-Out - 4280 ms

  • Longevity during 24 hours (after session expiration issue was resolved by increasing SSO session Max parameter from 10 to 24 hours)

    • Average response times for all 24 test Check-In - 1311 ms, Check-Out - 4541 ms

    • The same degradation observed as in 10 hours test. Response time increased significantly in 6 hours after test start - Check-In from 1045 ms to 1526 ms, Check-out from 2523 ms to 5262 ms. See Graphs for response times.

Comparison with previous results in Quesnelia (qcp1 environment):

  • 8, 20, 30 vUsers tests were stable. And 75 vUsers test revealed saturation point during ramp-up period with 33 vUsers. After this point response times increased significantly with the same throughput.

  • There's a significant performance degradation compared to previous results from tests in quesnelia release on qcp1 environment (non-eureka):

    • 8 vUsers - Check-out - 96%, Check-in - 48%

    • 20 vUsers - Check-out - 61%, Check-in - 33%

    • 30 vUsers - Check-out - 89%, Check-in - 55%

    • 75 vUsers - Check-out - 1111%, Check-in - 695% (during whole test)

    • 75 vUsers - Check-out - 48 %, Check-in - 7 % (before saturation point was found)

    • 30 vUsers (Longevity) - Check-out - 326%, Check-in - 188% (24 hours test)

Resources

  • CPU utilization

    • 45 minute and longevity tests used CPU in correspondence with number of vUsers but there's module that used about 16% - mod-inventory-storage-b. We do not observe expected growth for module CPU utilization in 75 vUsers because of saturation point.

  • Memory consumption

    • 45 minute and longevity tests didn't reveal some problems with memory usage by modules. So no memory leaks detected. Modules that consumed max memory - mod-search - 94%, mod-oa - 78%, mod-inventory - 72%, mod-dcb - 71%

  • RDS CPU utilization average

    • For both 45 minute and longevity tests RDS used max 867 connections. Without test it was 812 connections.

  • CPU (User) usage by broker

    • Common CPU utilization by broker during longevity was 18, 18, 16, 14% accordingly to broker distribution. Resource utilization decreased significantly after 6 hours 20 minutes (17:40 UTC) to 14, 12, 12, 11%

Notes:

  • The reason of degradation, which occurs after 6 hours of testing, has not yet been found.

Recommendations

  • Investigate degradation after 6 hours of longevity test.

Test Runs 

The following table contains  tests configuration information

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

86400

Results

Response time

The table contains results of Check-in, Check-out tests in Quesnelia release (Eureka). All requests that are >= 100 ms (in average response times)

45 minute tests

 

8 vUsers    

20 vUsers    

30 vUsers    

75 vUsers    

 

8 vUsers    

20 vUsers    

30 vUsers    

75 vUsers    

Requests

Response Times (ms)  

 Response Times (ms)  

 Response Times (ms)  

 Response Times (ms)  

Label

#Samples

Average

95th pct

#Samples

Average

95th pct

#Samples

Average

95th pct

#Samples

Average

95th pct

Check-out Controller

1745

1459.64

1694

4140

1356.82

1569.95

6047

1646.96

2725.6

6567

12589.1

19031

Check-In Controller

1288

603.95

706

3297

625.78

665

4560

748.3

1340.05

4957

4610.3

8229.2

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

1746

661.9

755.95

4142

613.14

659

6047

729.59

1242.8

6594

3868.57

7169.25

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

1289

240.43

287.5

3305

277.17

293

4572

286.61

363

4969

1642.04

3832.5

GET_circulation/loans (Submit_barcode_checkout)

1745

285.6

340

4141

275.47

307

6047

347.89

640.6

6571

2528.16

5109

GET_circulation/loans (Submit_patron_barcode)

1746

36.23

262

 

 

 

 

 

 

6599

1548.85

3773

GET_circulation/requests (Submit_barcode_checkin)

 

 

 

 

 

 

 

 

 

4960

1171.58

3366.5

GET_circulation/requests_status_Open (Submit_patron_barcode)

 

 

 

 

 

 

 

 

 

6596

1120.86

3117.2

GET_circulation/requests (Submit_barcode_checkout)

 

 

 

 

 

 

 

 

 

6565

997.17

3095.7

GET_users (Submit_patron_barcode)

1747

121.36

129

 

 

 

6050

136.53

368.45

6603

872.72

2508.6

GET_inventory/items (Submit_barcode_checkin)

1289

107.55

130.5

3305

111.12

136

4576

165.7

469.15

4970

848.62

2773

GET_users (Get_check_in_page)

1290

120.27

140

 

 

 

4577

165.61

506.3

4977

836.34

2577.1

GET_inventory/items (Submit_barcode_checkout)

1746

107.88

130

4143

110.18

136

6048

160.44

468.55

6594

757.24

2602

GET_circulation/requests_status_openAwaitingPickup (Submit_patron_barcode)

 

 

 

 

 

 

 

 

 

6594

718.98

2636

  • empty cells - response times less than 100 ms

Longevity test

Longevity 24 hours


Throughput

 30 vUsers Longevity 10 hours

 

 

 

 30 vUsers Longevity 10 hours

 

 

 

Requests

Samples, Response Times 

Label

#Samples

Average

95th pct

Check-Out Controller

77197

2870

8510

Check-In Controller

58806

1003

3320

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

77205

1100

4050

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

58817

290

390

 30 vUsers Longevity 24 hours

 

 

 

 30 vUsers Longevity 24 hours

 

 

 

Requests

Samples, Response Times 

Label

#Samples

Average

95th pct

Check-Out Controller

162392

4541

10100

Check-In Controller

122061

1311

4546

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

162392

1688

3364

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

122068

297

428

Comparisons

This table has comparison between average values of response times of Quesnelia (Check-in-check-out Test Report (Quesnelia)) and Quesnelia (Eureka) releases