GET /inventory/items (Check-in/out) API Report (Goldenrod)











PERF-79 - Getting issue details... STATUS

Overview

In this testing effort the performance of GET /inventory/items and GET /item-storage/items running in the Goldenrod release is tested with 1, 5, 8, and 20 virtual users for 30 minutes.  

Backend:

  • mod-inventory-storage-19.3.1
  • mod-inventory-16.0.1
  • okapi-3.1.2
  • mod-authtoken-2.5.1
  • mod-permissions-5.11.2

Environment:

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

High Level Summary

  1. GET /inventory/item?query=barcode==${itemBarcode} takes on average 830 ms for up to 8 users, and much slower for 20 users

  2. For every actual call to GET /inventory/item, there is a SELECT count_estimate() call made before that, and count_estimate() function call takes more time than the actual call.
  3. GET item by barcode is approximate ~42 ms faster if we get it directly from mod-inventory-storage->item-storage instead of going through business logic mod-inventory module
  4. mod-authtoken calls add up to at least 20% of the overall time

Test Runs and Results

GET /inventory/items?query=barcode==${itemBarcode} API

Test

Virtual Users

Duration

OKAPI log level

Profiled

Ramp up (secs)

Average (ms)75th %tile (ms)

1. 

1

30 min

INFO