[FOLIO-1811] SPIKE: verify and analyze checkin performance Created: 18/Feb/19  Updated: 03/Jun/20  Resolved: 20/Feb/19

Status: Closed
Project: FOLIO
Components: None
Affects versions: None
Fix versions: None

Type: Task Priority: P3
Reporter: Hongwei Ji Assignee: Hongwei Ji
Resolution: Done Votes: 0
Labels: platform-backlog, q1-performance
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original estimate: Not Specified

Attachments: Text File checkin.txt     Text File checkin_100_60.log     PNG File checkin_100_60.png     PNG File ebsco_checkinout_perf_result.png     Text File mod-circulation-storage.log     Text File mod-circulation.log     Text File mod-inventory-storage.log    
Issue links:
Relates
relates to FOLIO-1812 SPIKE: verify and analyze checkout pe... Closed
relates to FOLIO-1815 SPIKE: "profile" checkin/out-by-barco... Closed
Sprint: Core: Platform - Sprint 57
Story Points: 3
Development Team: Core: Platform

 Description   

EBSCO did checkin/checkout workflow performance testing on q4 environment. One of the slowest API call was checkin by barcode /circulation/check-in-by-barcode. See attached JMeter result file for 5 concurrent users on a small tenant for 5 minutes:

As core-platform team, we should verify the result using isolated test on nightly perf environment to see if the issue still exists and what are the possible causes.

Acceptance criteria: if performance issue is confirmed, create new JIRA ticket to address it.



 Comments   
Comment by Hongwei Ji [ 18/Feb/19 ]

To verify the result, I used the same JMeter checkin/out script but disabled all API calls in the workflow except the checkin-by-barcode one. The test was done on a standard perf env with the code from folio stable site on 2018-02-15. The test sends 100 requests in 60 seconds ramp-up window. Each request looks like checkin.txt and the barcode is selected from a pool and is different for each request. The JMeter log is in checkin_100_60.log and the result is in

In summary: even though a single checkin-by-barcode call on an idle system is not slow (under 2 seconds). When there are multiple concurrent checkin API calls (100 requests in 60s ramp-up window), each individual API call suffer significant latency (average is 83 seconds, between min 64s to max 97s). The bright side is that throughput is still good (49 requests per minute). The possible reason for individual latency is that behind the scene, checkin-by-code API makes multiple other API calls, see attached log files for mod-circulation.log, mod-circulation-storage.log, and mod-inventory-storage.log.

Comment by Hongwei Ji [ 20/Feb/19 ]

Created FOLIO-1815 Closed to address checkin-by-barcode performance issue

Comment by Hongwei Ji [ 05/Mar/19 ]

To make it easy to reproduce the problem, added a JMeter test

Generated at Thu Feb 08 23:16:05 UTC 2024 using Jira 1001.0.0-SNAPSHOT#100246-sha1:7a5c50119eb0633d306e14180817ddef5e80c75d.