Load Testing: mod-quick-marc
- MODQM-94Getting issue details... STATUS
Test plan
Requests:
- GET /records-editor/records?instanceId=<instanceId> (get quick-marc record)
- PUT /records-editor/records/<parsedRecordId> (update bib marc record)
- POST /records-editor/records (create new bib marc record)
Thread properties:
- Number of threads (users): 50/70/100
- Ramp-up period (seconds): 30
- Loop count: 1
Additional requirement:
- measure the amount of memory consumed by the module
File with test plan: quickMarcTestPlan.jmx
Test execution
Module startup
The peak memory usage: 299Mb
The peak CPU usage: 87.4%
50 threads
The peak memory usage: 325Mb
The peak CPU usage: 22.3%
Label | # Samples | Average | Median | 90% Line | 95% Line | 99% Line | Min | Max | Error % | Throughput | Received KB/sec | Sent KB/sec |
---|---|---|---|---|---|---|---|---|---|---|---|---|
GET | 50 | 2564 | 1986 | 5154 | 5388 | 6826 | 72 | 6826 | 0.00% | 1.89215 | 9.09 | 0.92 |
PUT | 50 | 6538 | 7684 | 9697 | 9771 | 10230 | 846 | 10230 | 0.00% | 1.55749 | 0.47 | 7.78 |
POST | 50 | 26543 | 25447 | 39828 | 40332 | 41817 | 5873 | 41817 | 0.00% | 0.69443 | 0.36 | 3.44 |
TOTAL | 150 | 11881 | 7449 | 30004 | 36834 | 41328 | 72 | 41817 | 0.00% | 2.02366 | 3.79 | 7.04 |
70 threads
The peak memory usage: 253Mb
The peak CPU usage: 18%
Label | # Samples | Average | Median | 90% Line | 95% Line | 99% Line | Min | Max | Error % | Throughput | Received KB/sec | Sent KB/sec |
---|---|---|---|---|---|---|---|---|---|---|---|---|
GET | 70 | 2239 | 2450 | 3861 | 4098 | 4460 | 108 | 4695 | 0.00% | 2.07734 | 6.64 | 1.01 |
PUT | 70 | 43367 | 59999 | 60104 | 60154 | 60200 | 18858 | 60212 | 54.29% | 0.76921 | 0.3 | 2.6 |
POST | 70 | 55984 | 60023 | 72098 | 73298 | 76878 | 18061 | 78045 | 97.14% | 0.52993 | 0.22 | 1.77 |
TOTAL | 210 | 33863 | 32063 | 60086 | 60200 | 74728 | 108 | 78045 | 50.48% | 1.36596 | 1.82 | 3.29 |
The reason for the request failures is the SRM stopped respond to quickMarc requests
There is a problem in quickMarc with handling database connections. For some reason, several connections are live too long and this leads to errors when there are no open DB connections in the pool. It may be a problem with transaction management for record update requests.