Check-in-check-out Test Report (Ramsons) [non-ECS]

Check-in-check-out Test Report (Ramsons) [non-ECS]

 

Test status: PASSED

Overview

  • Regression testing of Check-In/Check-Out (CI/CO) fixed load tests on okapi based environment in Ramsons non-ECS release.

  • The purposes of CI/CO testing:

    • To define response times of transaction controllers for Check-In and Check-Out

    • To define the response times for requests that take longer than 100 milliseconds

    • To find any trends for resource utilization and recommend improvements

    • To check how system behaves over extended period during longevity test

    • Compare results (current and previous

Summary

  • Common results:

    • CI/CO tests showed stable response times across low loads (8, 20 vUsers), a 50% increase under high load (75 vUsers), moderate degradation during longevity test, no memory leaks and up to 14% (80 ms) degradation in CO and up to 20% (100 ms) in CI 20 vUsers flow compared to Quesnelia release.

  • Tests #1, #2, #3, #4

Resources

  • CPU utilization

    • Tests #1, #2, #3, #4 and longevity tests used CPU in correspondence with number of vUsers but there are some modules that spiked during 75 vUsers test -  mod-users-b - 132%, mod-authtoken-b - 98%, nginx-okapi - 84%.

  • Memory consumption

    • Tests #1, #2, #3, #4 and longevity tests didn't reveal some problems with memory usage by modules. So no memory leaks detected.

  • RDS CPU utilization average

    • 8 vUsers - 13%, 20 vUsers - 22%, 30 vUsers - 30%, 75 vUsers - 63% During longevity test CPU grew from 30% to 45%. So it has growing trend during longevity test. The same CPU utilization as it was in quesnelia.

  • CPU (User) usage by broker

    • As MSK cluster is linked to all PTF clusters so the time range which can reflect only CI/CO during longevity test (test #5) - from midnight till 7 a.m. Max consumption rate here - 10%. Also we may observe impact of other CI/CO tests - the max consumption rate - 40% for all clusters (tests #1, #2, #3, #4).

Recommendations & Jiras

  • mod-serials-management-b affect DB connection growth 200 connection in average. Disabling this module do not affect response times or error rate but significantly decrease DB connection number.

  • Revisions for modules should have CPU=0 as a default value so this should be changed on module deployment level.

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

Errors:

  • Error messages: POST_circulation/check-out-by-barcode (Submit_barcode_checkout)_POST_422. 422/Unprocessable Entity. Happen expectedly if instance was checked out already. Error rate - 0.002% which is acceptable.

Response time

The table contains results of Check-in, Check-out tests in Ramsons release. 

Test #1, #2, #3, #4

 

8 vUsers  (test #1)

20 vUsers  (test #2)

30 vUsers  (test #3)

75 vUsers  (test #4)

 

8 vUsers  (test #1)

20 vUsers  (test #2)

30 vUsers  (test #3)

75 vUsers  (test #4)

Requests

Response Times (ms)

 Response Times (ms)

 Response Times (ms)

 Response Times (ms)

Label

#Samples

95th pct

Average

#Samples

95th pct

Average

#Samples

95th pct

Average

#Samples

95th pct

Average

Check-Out Controller

1888

1008.75

811

4496

1006.3

835.63

6588

954.55

822.01

14592

1422

1100.28

Check-In Controller

1322

568.85

470

3386

559

482.65

4973

506

455.46

10971

775

606.04

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

1888

386

289.98

4498

368

302.89

6589

335

288.99

14595

519

384.38

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

1322

279.7

227.94

3394

273

234.69

4982

240

209.28

10991

369

277.67

GET_circulation/loans (Submit_barcode_checkout)

1888

235.55

164.45

4496

216

162.68

6588

195

162.48

14592

319

218.14

Test #5

 30 vUsers Longevity test

 

 

 

 30 vUsers Longevity test

 

 

 

Requests

 

Samples, Response Times (ms)

Label

#Samples

95th pct

Average

Check-Out Controller

1888

1008.75

1130

Check-In Controller

1322

568.85

519

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

1888

386

453.5

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

1322

279.7

331.15

Comparisons

This table has comparison between average values of response times of Ramsons and Quesnelia releases

 

8 vUsers   (test #1)

20 vUsers   (test #2)

30 vUsers   (test #3)

75 vUsers   (test #4)

 

8 vUsers   (test #1)

20 vUsers   (test #2)

30 vUsers   (test #3)

75 vUsers   (test #4)

Requests

Response Times, milliseconds

 

Quesnelia

Ramsons

 

 

Quesnelia

Ramsons

 

 

Quesnelia

Ramsons

 

 

Quesnelia

Ramsons

 

 

Label

Average

Delta,ms

Difference,%

Average

Delta,ms

Difference,%

Average

Delta,ms

Difference,%

Average

Delta,ms

Difference,%

Check-Out Controller

741

811

70

9.45%

729

835.63

106.63

14.63%

767

822.01

55.01

7.17%

1039

1100.28

61.28

5.90%

Check-In Controller

408

470

62

15.20%

404

482.65

78.65

19.47%

427

455.46

28.46

6.67%

580

606.04

26.04

4.49%

Comparison of longevity test

30 vUsers Longevity  (test #5)

30 vUsers Longevity  (test #5)

Response Times, milliseconds

 

 

Quesnelia

Ramsons

 

 

Average

Average

Delta,ms

Difference,%

1065

1130

65

6.10%

454

519

65

14.32%

 

API requests where response times >= 100 milliseconds

API

30 vUsers  Ramsons

Average, ms

API

30 vUsers  Ramsons

Average, ms

POST checkout-by-barcode

288

POST checkin-by-barcode 

209

GET circulation/loans

162

Resources Utilization

CPU Utilization

During 45 minute tests CPU utilized mostly during high load (75 vUsers) by okapi - 84%, mod-authtoken spiked every 3 minutes from 5 to 30%, mod-inventory-storage - 23%, mod-inventory - 17%, mod-pubsub - 17%, nginx-okapi - 10%, mod-circulation - 10%, mod-circulation-storage - 3%

During longevity CPU utilized mostly by okapi - 37%, mod-authtoken spiked every 3 minutes from 5 to 20%, mod-inventory - 12%, mod-pubsub - 11%, mod-circulation - 5%, mod-circulation-storage - 3%

CPU

#1 8 vUsers

CPU

#2 20 vUsers

CPU

#3 30 vUsers

CPU

#4 75 vUsers

CPU

#5 30 vUsers Longevity

CPU

#1 8 vUsers

CPU

#2 20 vUsers

CPU

#3 30 vUsers

CPU

#4 75 vUsers

CPU

#5 30 vUsers Longevity

mod-authtoken-b

16.93

okapi-b

24.66

okapi-b

36.73

okapi-b

85.34

okapi-b

39.51

okapi-b

10.48

mod-authtoken-b

22.45

mod-authtoken-b