GET /inventory/items (Check-in/out) API Report (Goldenrod)
- PERF-79Getting 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
GET /inventory/item?query=barcode==${itemBarcode} takes on average 830 ms for up to 8 users, and much slower for 20 users
- 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.
- 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
- 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 |