...
Jira Legacy | ||||||
---|---|---|---|---|---|---|
|
...
- Define overall performance of POST /inventory-hierarchy/items-and-holdings;
- Find bottlenecks if possible;
- Measure KPI's for different number of instances included in request;
- Measure KPI's for different number of holdings attached per instance ID;
Overview
Mod-inventory-storage has a new API to gather all related instances' data, i.e., items and holdings, in one call in order to eliminate making 3 separate calls to get the data. The API also allows passing in x number of instance IDs to lookup. Since teams are now starting to use this API, it's important to understand the stability of the API with respect to the module's CPU and memory usage, and also the database usage.
Summary
- System shows stable work and quick responses in all test
- No memory leaks found
- There is a link between most used modules (see CPU) and test type. In case if it's extremely fast responses (for example for 5 holdings per instance and one user) - most used module will be mod-authtoken, otherwise (see test 4) that will be mod-inventory-storage. Same for increasing number of instances per request.
- DB CPU usage reaches maximum in 8-users test
- Fast response for most high load test (test 4). To extract an instance having 300+ holdings it takes 373 ms for 75th percentile. Therefore getting one holding with this endpoint takes 1.2 ms.
- No bottlenecks found.
Version:
"okapi-3.1.2";
"mod-inventory-storage-19.4.0-SNAPSHOT.448";
...
Holdings per instance | Number of instances |
---|---|
>0 | 7183552 |
>1 | 407467 |
>2 | 69890 |
>3 | 22241 |
>4 | 10201 |
>5 | 5635 |
>10 | 1060 |
>15 | 516 |
>20 | 331 |
>25 | 240 |
>40 | 115 |
>100 | 23 |
>300 | 7 |
Test Runs:
Test | Virtual Users | Duration (min) | Instance per request | Holdings per instance |
---|---|---|---|---|
1 | 1 | 30 | 1 | 5 |
2 | 2 | 30 | 1 | 5 |
3 | 1 | 30 | 1 (adding instance to request each loop) max - 964 | 5 |
4 | 1 | 30 | 1 | 300 |
5 | 1 | 30 | 50 | >1 |
6 | 8 | 30 | 50 | >1 |
7 | 1 | 90 | (adding |
5 instance to request each loop) max - 5325 | >1 |
Results
Summary:
During test set we've measured general performance of new endpoint.
...
Requests | Total | OK | KO | % KO | Req/s | Min | 50th pct | 75th pct | 95th pct | 99th pct | Max | Average | Latency |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
[POST] /inventory-hierarchy/items-and-holdings | 1065 | 1065 | 0 | 0 | 0.197 | 0.079 | 5.161 | 7.660 | 9.372 | 10.019 | 12.439 | 5.051 | 8.414 |
Instances count | Response time |
---|---|
10 | 135 ms |
100 | 259 ms |
500 | 1.07 s |
1000 | 1.77 s |
2000 | 3.37 s |
3000 | 6.83 s |
4000 | 7.52 s |
5000 | 9.21 s |
Mod-Inventory-storage CPU usage
Mod Inventory-storage Mem. Usage
RDS CPU usage
RDS Memory usage
...