Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

FameFlower Test Results

...

In this workflow we are checking the performance of the loading items on instance record (in holdings accordion) workflow running in the Fameflower release.  We will test it with 1, 5, 8, and 20 virtual users for 30 minutes.  A longevity test will also be executed to see if there were memory issues.

...

  • 55 back-end modules deployed in 110 ECS services
  • 3 okapi ECS services
  • 8 m5.large  EC2 instances
  •  db.r5.xlarge AWS RDS instance
  • INFO logging level



High Level Summary

  1. Overall check in, check out time in seconds

    1. Average check in time is 1.51 seconds for a typical use case of 8 users, 1.65 seconds for 20 users
    2. Average check out time is 1.75 seconds for a typical use case of 8 users, 1.90 seconds for 20 users
  2. Slow APIs taking more than 100ms to run 
    1. POST checkout-by-barcode
    2. POST checkin-by-barcode 
    3. Get circulation/loans
    4. Get inventory/items
  3. mod-inventory-storage log warnings for missing indexes - 64K lines in  45 minutes run. Logging level could be reduced to WARNING or INFO, but at the cost of having less data to work with should there be a need to troubleshoot. Adding the missing indexes could improve performance while stop logging these warnings 
    Jira Legacy
    serverSystem Jira
    serverId01505d01-b853-3c2e-90f1-ee9b165564fc
    keyCIRCSTORE-215
  4. JVM profiling shows JSON de/serialization operations one of the slowest operations, totaling more CPU time than other calls.  Since FOLIO modules retrieves and stores JSON objects, making sure that serialization and deserialization JSON efficient is essential, see Recommended Improvements

Test Runs

  1. Overall load items workflow time in seconds


    Average (seconds)50th %tile (seconds)75th %tile (seconds)95th %tile  (seconds)





    1 user1.0151.2340.96114.27767 s1.0711.4091.3221.653
    5 users1.2361.4881.1561.3931.4641.8691.7042.219
    8 users1.5121.7511.4031.8521.7412.0312.022.274
    20 users1.6491.8981.5351.9961.8962.2112.2522.539


  2. Slow APIs taking more than 100 ms to return

    API1 user (75th %tile)5 users (75th %tile)8 users (75th %tile)20 Users (75th %tile)
    GET /
    GET source-storage/formattedRecords/{id}5.
    24
    32 s
    905 ms906 ms988 msGET_/
    19.92 s34.83 s1.46 min

    GET inventory/instances keyword all "aba"

    355.60 ms753.86 ms909.02 ms2.87 s
    POST
    _/
    circulation/check-out-by-barcode
    283
    679.72 ms
    346 ms449 ms479 ms
    1.04 s1.11 s1.45 s
    GET inventory/items
    217
    164.45 ms
    232
    251.71 ms
    237
    286.87 ms
    281
    405.85 ms
    GET inventory/instances/{id}119.93 ms115.98 ms123.88 ms131.89 ms
    GET circulation/loans221.95 ms254.08 ms251.45 ms256.18 ms
    GET locations221.09 ms142.89 ms152.26 ms205.71 ms
    GET circulation/requests81.77 ms212.38 ms257.80 ms443.79 ms


  3. Excess logging of missing indexes - 64K lines in  45 minutes run. Logging level could be reduced to WARNING or INFO, but at the cost of having less data to work with should there be a need to troubleshoot.


  4. JVM profiling shows JSON de/serialization operations one of the slowest operations.

Test Runs

Test

Virtual Users

Duration

OKAPI log level

Profiled

Ramp up (total time

in seconds)

1. 

1

30 min

INFO

No

1

2. 

5

30 min

INFO

No

50

3. 

8

30 min

INFO

No

80

4. 

20

30 min

INFO

No

200

5. 

1

30 min

INFO

Yes

1

6. 

5

30 min

INFO

Yes

50

7. 

8

30 min

INFO

Yes

80

8. 

20

30 min

INFO

Yes

200

formattedRecords

Results

JVM Profiling

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

...

The following WARNING statements of missing indexes were generated during a test run and logged by mod-source-inventoryrecord-storage:

Code Block
languagesql
linenumberstrue

...


1 user5 users8 users20 users

AverageAverageAverageAverage
Okapi40%42%40%40%
mod-inventory40%43%44%43%
mod-inventory-storage40%40%41%41%
mod-circulation72%75%72%74%
mod-circulation-storage32%32%32%32%


Appendix

See Attached FameFlower Performance Test Runs.xlsx for details