Versions Compared

Key

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

Table of Contents
outlinetrue

Overview

This is a report for a series of Check-in-check-out test runs against the Lotus release. 

Back End:

...

...

...

...

...

Front End:

  • Item Check-in (folio_checkin-7.1.0)
  • Item Check-out (folio_checkout-8.1.0)

Infrastructure:

...

  • 1024 CPU units, 1684 MiB

...

  • 1024 CPU units, 1684MB mem

...

  • 1024 CPU units, 896MB mem

...

  • 1024 CPU units, 1024MB mem

...

  • 1024 CPU units, 1296 MiB

...

  • 1024 CPU units, 896MB mem

...

  • 128 CPU units, 896MB mem

...

  • 1024 CPU units, 1360 MB mem

High Level Summary

  • Morning Glory performs much better than Lotus response times for check-ins are mid 400ms, checkout 600ms - 800ms, with little variations between 1 and 50 users
  • Worst-performing APIs are only POST /checkin-by-barcode and POST /checkout-by-barcode.  They have improved since Lotus, now averaging in the mid 200ms even in the 50 users scenario.
    • GET /circulation/loans takes 107ms in the 20 users and 50 users cases.

Test Runs

...

Test

...

Virtual Users

...

Duration

...

1.

...

2.

...

3.

...

4.

...

Results

Response Times (Average of all tests listed above, in seconds)

...

Response times are consistently good, and over 1 second only for check-out in the 95th percentile. The 50 users test has the best response times.

Comparisons to Last Release

The following tables compare Lotus test results against Morning Glory.

Response Time Comparison

...

In general, there are no regressions in performance but instead there are improvements in response times across the board.  Check in times improved by at least 30% and check-out times consistently around 35%.  The 50 users' response times are also in very similar to 5 users. This means that the system is very stable from 1 to 50 users.

Note: LT = Lotus build, MG = Kiwi build

...

Table of Contents
outlinetrue

Overview

This is a report for a series of Check-in-check-out test runs against the Lotus release. 

Back End:

  • mod-circulation-23.0.11
  • mod-circulation-storage-14.1.0
  • mod-inventory-18.2.0
  • mod-inventory-storage-24.0.0
  • mod-authtoken-2.11.0
  • mod-pubsub-2.6.0
  • mod-patron-blocks-1.6.0
  • mod-feesfines-18.0.0
  • okapi-4.14.2

Front End:

  • Item Check-in (folio_checkin-7.1.0)
  • Item Check-out (folio_checkout-8.1.0)

Infrastructure:

  • 79 back-end modules deployed in 153 ECS tasks (changed. In Lotus, it was75 back-end modules deployed in 159 ECS tasks)
  • 3 okapi ECS tasks
  • 10 m6i.2xlarge  EC2 instances (changed. In Lotus it was 9 m5.xlarge)
  • 2 db.r6g.xlarge AWS RDS instance
  • INFO logging level
  • mod-inventory (running tasks -2)
    • 1024 CPU units, 1684 MiB
  • mod-inventory-storage (running tasks -2)
    • 1024 CPU units, 1684MB mem
  • mod-circulation (running tasks -2)
    • 1024 CPU units, 896MB mem
  • mod-circulation-storage (running tasks -2)
    • 1024 CPU units, 1024MB mem
  • mod-pubsub (running tasks -2)
    • 1024 CPU units, 1296 MiB
  • mod-patron-blocks (running tasks -2)
    • 1024 CPU units, 896MB mem
  • mod-feesfines (running tasks -2)
    • 128CPU units, 896MB mem
  • mod-authtoken (running tasks -2)
    • 128 CPU units, 896MB mem
  • okapi (running tasks -3)
    • 1024 CPU units, 1360 MB mem

High-Level Summary

  • Morning Glory performs much better than Lotus response times for check-ins are mid 400ms, checkout 600ms - 800ms, with little variations between 1 and 50 users
  • Worst-performing APIs are only POST /checkin-by-barcode and POST /checkout-by-barcode.  They have improved since Lotus, now averaging in the mid 200ms even in the 50 users scenario.
    • GET /circulation/loans take 107ms on average in the 20 users and 50 users cases.

Test Runs

Test

Virtual Users

Duration

Load generator size (recommended)Load generator Memory(GiB) (recommended)

1.

1 user30 minst3.medium3

2.

5 users30 minst3.medium3

3.

8 users30 minst3.medium3

4.

20 users30 minst3.medium4
5.50 users30 minst3.large6
9.20 users longevity16 hourst3.xlarge14

Results

Response Times (Average of all tests listed above, in seconds)


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

Check-inCheck-outCheck-inCheck-outCheck-inCheck-outCheck-inCheck-out
1 user0.5160.7950.490.7580.5180.8390.6291.012
5 users0.4180.6460.4080.6240.4330.6720.4930.766
8 users0.4110.6270.40.6060.4240.6460.4780.741
20 users0.4010.6150.3930.60.4130.6320.4560.704
50 users0.3710.6010.3730.590.3950.6160.4360.682

Response times are consistently good, and over 1 second only for check-out in the 95th percentile. The 50 users test has the best response times.

Comparisons to Last Release

The following tables compare Lotus test results against Morning Glory.

Response Time Comparison

In the tables below, the Delta columns express the differences betweenLotus and Morning Glory releases in percentage.

In general, there are no regressions in performance instead, there are improvements in response times across the board.  Check-in times improved by at least 30% and check-out times consistently around 35%.  The 50 users' response times are also very similar to the 5 users. This means that the system is very stable from 1 to 50 users.

Note: LT = Lotus build, MG = Kiwi build

0


Average50th percentile 
Check-in MGCheck-in LTDeltaCheck-out MGCheck-out LTDelta1 user0.516Check-in MGCheck-in LTDeltaCheck-out MGCheck-out LTDelta
1 user0.5160.7329.32%0.7951.18833.08%0.490.68228.15%0.7581.08430.07%
5 users0.4180.6232.58%0.6460.97633.81%0.4080.58229.90%0.6240.91531.80%
8 users0.4110.61533.17%0.6270.97135.43%0.40.58131.15%0.6060.90432.96%
20 users0.4010.66139.33%0.6151.05241.54%0.3930.6236.61%0.60.96737.95%
50 users0.371--0.601--0.373--0.59--

...

The APIs identified in the table below were the ones that took over 100ms to execute in Lotus and Kiwi in the 75th percentile.  In Morning Glory these APIs are generally better, especially with 5 or more concurrent users. Impressively the response times of POST-checkout-by-barcode and POST-check-in-by-barcode all are under 300ms! GET inventory/items' response times are well under 60ms now compared to being on the border in the Lotus release.

...

Longevity test shows that Check Out response time increased as time went on, but not as aggressive as in Lotus. 

...

In the response time graph below the Checkout Controller time, which gathers all check-out API response times), increased over the 16-hours window, from just 0.633s to 0.754s. 

Image Removed

The DB CPU utilization percentage did not increase over time, and was about10% by the end of the test. There are huge spikes every 30 minutes. These are due to the background tasks that run periodically and as the number of loans grew so did the physical resources needed to process all of them.

Image Removed

The number of connections also rose over time, from 348 to 391 connections. It's unclear what (DB connections) caused the DB to use more CPU resources as the test progressed.

Image Removed

Database's memory dipped a bit but no symptoms of memory leaks. The memory level bounced back up right after the test finished. 

Image Removed

Modules CPU Utilization During Longevity Test

Here is a view of the CPU utilization. A couple of observations:

  • mod-authtoken seems to take up CPU resources in a cyclical way from 28% to 32%. 
  • Okapi uses only about 12%CPU on average compared to Lotus about 450-470% CPU on average.
  • mod-users CPU Utilization grows from 20% up to 36%
  • Other modules used less than 20% CPU on average.
  • mod-circulation-storage spikes periodically due to processing background tasks

Image Removed

Here is the Service CPU Utilization graph with the main involved mods.

Image Removed

Image Removed

There do not appear to be any memory leak issues in Morning Glory. There were no spikes and the processes did not crash. 

The timeline highlighted below encompasses all 5 test runs (1, 5, 8, 20, and 50 users).

Image Removed

Image Removed

Modules CPUs and Memory Utilization

The relevant services overall seem to occupy CPU resources nominally. Only mod-authtoken seems to have the spikes but the processes did not crash.

Image Removed

Image Removed

...

but not as aggressive as in Lotus. 


Check InCheck Out
1st Hour0.389s0.633s
8th Hour0.348s0.666s
15th Hour0.364s0.754s

In the response time graph below the Checkout Controller time, which gathers all check-out API response times), increased over the 16-hours window, from just 0.633s to 0.754s. 

Image Added


The DB CPU utilization percentage did not increase over time and was about10% by the end of the test. There are huge spikes every 30 minutes. These are due to the background tasks that run periodically and as the number of loans grew so did the physical resources needed to process all of them.

Image Added

The number of connections also rose over time, from 348 to 391 connections. It's unclear what (DB connections) caused the DB to use more CPU resources as the test progressed.

Image Added


Database's memory dipped a bit but no symptoms of memory leaks. The memory level bounced back up right after the test finished. 

Image Added

Modules CPU Utilization During Longevity Test

Here is a view of the CPU utilization. A couple of observations:

  • mod-authtoken seems to take up CPU resources in a cyclical way from 28% to 32%. 
  • Okapi uses only about 12%CPU on average compared to Lotus about 450-470% CPU on average.
  • mod-users CPU Utilization grows from 20% up to 36%
  • Other modules used less than 20% CPU on average.
  • mod-circulation-storage spikes periodically due to processing background tasks

Image Added

Here is the Service CPU Utilization graph with the main involved mods.

Image Added

Image Added



There do not appear to be any memory leak issues in Morning Glory. There were no spikes and the processes did not crash. 

The timeline highlighted below encompasses all 5 test runs (1, 5, 8, 20, and 50 users).

Image Added

Image Added

Modules CPUs and Memory Utilization

The relevant services overall seem to occupy CPU resources nominally. Only mod-authtoken seems to have the spikes but the processes did not crash.


Image Added

Image Added

20-users testsAvgMax
mod-users18%18%
mod-pubsub5%5%
okapi11%11%
mod-circulation4%4%
mod-circulation-storage5%5%
mod-inventory6%6%
mod-inventory-storage7%7%
mod-patron-blocks1%1%
mod-feesfines14%15%
mod-authtoken24%66%


50-users testsAvgMax
mod-users
21%
38%
21%
39%
mod-pubsub
5%
7%
5%
7%
okapi
14%
25%
14%
26%
mod-circulation
4%
6%
4%
7%
mod-circulation-storage
5%
9%
5%
10%
mod-inventory7%7%
mod-inventory-storage
7%
12%
7%
14%
mod-patron-blocks
1%
2%
1%
2%
mod-feesfines
17%
31%
17%
33%
mod-authtoken
31%
47%
78%
116%



Services' memory seems to be stable during the test runs. 

...

Users TestedMorning GloryLotus
1334350
5336375
8346375
20351400
50360-




Miscellaneous

...