Check in items workflow Test Report (Fameflower)

Check in items workflow Test Report (Fameflower)

 

 

 

 

 

 

 

 

 

 

 

https://folio-org.atlassian.net/browse/PERF-37

Overview

In this workflow we are checking the performance of the check in items workflow running in the Fameflower release https://folio-org.atlassian.net/browse/PERF-37.  We tested it with 1, 5, 8, and 20 virtual users for 30 minutes.  

 

Backend:

  • mod-inventory-storage-19.1.2

  • mod-inventory-14.1.3

  • mod-circulation-18.0.9

  • mod-circulation-storage-11.0.8

  • okapi-2.38.0

  • mod-authtoken-2.4.0

  • mod-permissions-5.9.0

  • mod-data-export-1.1.1

  • mod-source-record-storage-3.1.4

  • mod-source-record-manager-2.1.4

Frontend:

  • folio_inventory-2.0.2

  • folio_circulation-2.0.0

  • Item Check-in (folio_checkin-2.0.1)

Environment:

  • 55 back-end modules deployed in 110 ECS services

  • 3 okapi ECS services

  • 8 m5.large  EC2 instances

  • 1  db.r5.xlarge AWS RDS instance

  • WARNING logging level

High Level Summary

  1. Overall check in time is 781 ms for a typical use case of 8 users, 1127.57 ms for 20 users

  2. Slow APIs taking more than 100ms to run:

    1. POST checkin-by-barcode

    2. GET inventory/items

  3. mod-circulation-storage log warnings for missing indexes. Adding the missing indexes could improve performance while stop logging these warning. See the Recommended Improvements for the JIRAs created to address these indexes. 

  4. JVM profiling shows JSON de/serialization operations one of the slowest operations, totaling more CPU time than other calls.  Since FOLIO modules retrieve and stores JSON objects, making sure that serializing and deserializing JSON efficient is essential, see Recommended Improvements

Test Runs

Test

Virtual Users

Duration

OKAPI log level

Profiled

Ramp up (total time

in seconds)

1. 

1

30 min

WARNING

No

1

2. 

5

30 min

WARNING

No

50

3. 

8

30 min

WARNING

No

80

4. 

20

30 min

WARNING

No

200

5. 

8

30 min

WARNING

Yes

80

 

Results

  1. Overall check in items workflow time in seconds

    For 30 minutes

    Profiler

    Average 

    75th %tile

    1 user

    OFF

    379.88 ms

    379.88 ms

    5 users

    OFF

    715.4 ms

    789.13 ms

    8 users

    OFF

    781 ms

    822.02 ms

    20 users

    OFF

    1127.57 ms

    1203.27 ms

    8 users

    ON

    1352.67 ms

    1415.58 ms

  2. Slow APIs taking more than 100 ms to return (Profiling OFF)

    API

    1 user (75th %tile)

    5 users (75th %tile)

    8 users (75th %tile)

    20 Users (75th %tile)

    API

    1 user (75th %tile)

    5 users (75th %tile)

    8 users (75th %tile)

    20 Users (75th %tile)

    POST checkin-by-barcode 

    379.88 ms

    470.19 ms

    508.61 ms

    750.88 ms

    Get inventory/items

    168.20 ms

    183.79 ms

    208.23 ms

    289.92 ms

JVM Profiling

  • Overall slow methods (between the modules profiled: mod-circulation, mod-circulation-storage, mod-inventory, mod-inventory-storage)

 

Database