Versions Compared

Key

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

...


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

Check-inCheck-outCheck-inCheck-outCheck-inCheck-outCheck-inCheck-out
1 user0.9671.9890.8891.8320.9842.2011.2542.815
5 users1.0532.1710.9811.9691.1142.2531.5283.370
8 users1.1932.2441.0762.0221.3392.3721.8953.544
20 users2.3913.9011.6393.0732.2634.124.8118.784


Slow The following table shows the slow 75th percentile APIs taking more than 100 ms to return in 8-users test

75th percentile times in seconds.

, and also comparing them against Goldenrod's.  Other than the 1-user test, starting with the 5-users test, all listed APIs are slower with GET automated-patron-blocks leading the way at 150% slower, while GET circulation/loans regressed up to 60%

API

1 user  GR (75th %tile)

1 user  HS (75th %tile)

5 users GR (75th %tile)

5 users HS (75th %tile)

8 users GR (75th %tile)8 users HS (75th %tile)

20 users GR (75th %tile)

20 users HS (75th %tile)
Get GET circulation/loans0.3450.3490.3650.4060.3910.4220.6540.784
Get GET inventory/items0.2080.1860.2080.2220.2250.2330.3120.375

POST checkin-by-barcode 

0.6820.5930.6310.6640.8150.8491.2961.467
POST checkout-by-barcode0.7500.7170.6880.7840.7330.8171.2051.469
GET automated-patron-blocks0.0690.1630.0850.1800.0790.1880.1180.296

...


Average50th Percentile75th percentile95th percentile 
Check-in GRCheck-in HSCheck-out GRCheck-out HSCheck-in GRCheck-in HSCheck-out GRCheck-out HSCheck-in GRCheck-in HSCheck-out GRCheck-out HSCheck-in GRCheck-in HSCheck-out GRCheck-out HS
1 user1.060.9671.9941.9890.9770.8891.821.8321.1110.9842.0042.0211.3231.2542.8112.815
5 users1.0111.0531.9242.1710.9750.9811.8141.9691.0671.1141.9772.2531.2511.5282.6253.37
8 users1.1421.1932.0442.2441.0611.0761.8992.0221.2741.3392.0932.3721.5691.8953.1073.544
20 users1.7022.3913.023.9011.491.6392.6523.0731.9362.2633.2734.122.9534.8115.3528.784

This table shows that the average response time of the checkout transaction is 9% to 28% slower than in Goldenrod, and check-in in Honeysuckle likewise is about 4-22% slower (data aggregated from 5 to 20 users test runs).

Longevity test

A 24-hour longevity test was performed (with Okapi 4.2.2). Key observations:

Image Added

  • Performance degraded after 2 hours.
    • Average response time in the first two hours: 
      • Check-in:  2.28 sec
      • Check-out: 4.76 sec
    • Average response time in the first 12 hours:
      • Check-in: 2.709 sec
      • Check-out: 7.898 sec
    • Average response time in the last 12 hours:
      • Check-in:  4.605 sec
      • Check-out: 17.297 sec
    • Together the average response time for the entire test run:
      • Check-in: 3.414 sec
      • Check-out: 11.419 sec
  • Throughput degrades over time, unsurprisingly
    • Image Added


  • Modules Services CPU utilizations (The black lines indicate the start and finish time of the test run)
  • Image Added
    • With the load of 20 users, Okapi started out working hardest, but its CPU utilization drops down over time. This is because mod-pubsub's is leaking HTTP Client and taking up more resources therefore slowing down, causing Okapi to not need to route messages as much. Clearly mod-pubsub's CPU utilization went up. The other modules follow Okapi's pattern.
  • Services Modules Memory utilizations 
  • Image Added
    • No modules exhibited memory leaks except for mod-pubsub
  • Although there were two instances of mod-pubsub running on two different ec2 instances, mod-pubsub's traffic seemed to have been stickied to one instance. Here are graphs showing mod-pubsub's on one instance using up memory and CPU resources, and on another instance not showing much activities:
    • Image Added
    • mod-pubsub and Okapi on another node - Okapi's CPU utilization dwindles while mod-pubsub does not seem to be busy at all
    • Image Added

JVM Profiling

Database



The following queries took more than 100ms to execute under load

...


1 user5 users8 users20 users400 users
Okapi CPU




Okapi Memory




Appendix

CIRC-1014

https://issues.folio.org/browse/MODPATBLK-70

https://issues.folio.org/browse/OKAPI-964

https://issues.folio.org/browse/OKAPI-965