Versions Compared

Key

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

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

Jira Legacy
serverFOLIO Issue TrackerSystem JIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId6ccf3fe401505d01-3301b853-368a3c2e-983e90f1-20c466b11a49ee9b165564fc
keyPERF-39

Table of Contents

...

In this workflow, we are checking the performance of the renewal of loan items for the Goldenrod release.

We tested it with 1, 2 virtual users for 30 minutes.  

Backend:

  • mod-users-17.1.0
  • mod-users-bl-6.0.0
  • mod-authtoken-2.5.1
  • mod-permissions-5.11.2
  • mod-circulation-19.0.9
  • mod-circulation-storage-12.0.1
  • okapi-3.1.1

Environment:

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

...

Test

Virtual Users

Duration

OKAPI log level

Loans per User

1. 

1

30 min

WARNING

10, 50, 100, 200

2. 

2

30 min

WARNING

10, 50, 100, 200

3.130 minINFO200


Results

  1. Renew all loans by barcode

    Total Users for 30 minutesLoansRenew all loans (Average)POST_/circulation/renew-by-barcode (Average)
    1 user10

    6.52 seconds

    585.11 ms

    50

    31.81 seconds

    637.48 ms

    1001.06 minutes

    650.15 ms

    2002.09 minutes

    673.40 ms

    2 users10

    7.42 seconds

    683.76 ms

    50

    32.61 seconds

    686.65 ms

    100

    1.10 minutes

    705.37 ms

    200

    2.27 minutes

    747.04 ms



  2. Below is the dependency graph generated from Giraffe for single POST_/circulation/renew-by-barcode API. It shows individual calls made by renew-by-barcode to gather prerequisite data from different APIs such as item-storage, location-units, loan-types, request-storage, notice-policy, locations, and mod-authtoken. In all, this call took 990 ms, and 6% of that is consumed by mod-authtoken and the remaining 94% of the time is taken by other APIs to gather prerequisite data.

...

QueryTotal timeAverage TimeTotal calls made
SELECT count_estimate('SELECT jsonb,id FROM fs09000000_mod_inventory_storage.item WHERE lower(f_unaccent(item.jsonb->>''barcode'')) LIKE lower(f_unaccent(''54357881''))')2 minutes or 71%14 ms9027
SELECT count_estimate('SELECT jsonb FROM fs09000000_mod_patron_blocks.user_summary WHERE (jsonb->>''userId'') = ''4deba809-4fb4-432a-b3df-c54b6ad51d22''')2 ms or 10%2 ms8457


Service CPU Utilization

Service CPU utilization is relatively on a lower side for most modules except for mod-circulation. For service with the highest CPU utilization is shown by range to get a better picture.

For 30 minutesModulesService CPU Utilization
1 usermod-inventory

3%

mod-inventory-storage

10%

mod-circulation95%70%-95% 
mod-circulation-storage6%
2 usersmod-inventory

3.25%

mod-inventory-storage

17.75%

mod-circulation

70%-122.75%

mod-circulation-storage

11.75%

...

Service memory was stable for most modules except mod-circulation which was on the higher side.  For service with the highest Memory utilization is shown by range to get a better picture.

For 30 minutesModulesService Memory CPU Utilization
1 usermod-inventory

63%

mod-inventory-storage

56%

mod-circulation113%-118%
mod-circulation-storage42%
2 usersmod-inventory

65%

mod-inventory-storage

56%

mod-circulation

113%-118%

mod-circulation-storage

49%

Graph for service memory utilization for mod-circulation. There seems to be a potential memory leak problem. Memory  Memory usage started at ~112%~113%, rose to ~118% and fall back to ~101%

Image RemovedImage Added


Recommended Improvements 
Anchor
recommendedImprovements
recommendedImprovements

  • The following JIRAs has been created for mod-authtoken optimization:

Jira Legacy
server
FOLIO Issue Tracker
System JIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId
6ccf3fe4
01505d01-
3301
b853-
368a
3c2e-
983e
90f1-
20c466b11a49
ee9b165564fc
keyMODAT-80

Jira Legacy
server
FOLIO Issue Tracker
System JIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId
6ccf3fe4
01505d01-
3301
b853-
368a
3c2e-
983e
90f1-
20c466b11a49
ee9b165564fc
keyMODAT-83

Appendix

See Attached user_loanRenewals-test-report.xlsx for details