Overview
This document contains the results of testing List App refreshing of 200k records on multiple tenants with R/W split enabled (Poppy release). The goal of testing is to assess the performance of mod-lists with load spread across multiple tenants.
Ticket:
- PERF-665Getting issue details... STATUS
Summary
Test runs
Query used in lists - "Item status != Available". List refresh result is about 200K records.
Scenario | Data quantity |
---|---|
List App 3 users refresh | tenant 1 - 1 user tenant 2 - 1 user tenants 3 - 1 user |
List App 10 users refresh | tenant 1 - 3 user tenant 2 - 3 user tenants 3 - 4 user |
List App 30 users refresh | tenant 1 - 10 user tenant 2 - 10 user tenants 3 - 10 user |
Results
Transaction | Single tenant* | 3 tenants** | ||||
---|---|---|---|---|---|---|
[Orchid] 10 users | [Poppy] 10 users | [Poppy] 10 users Testing in parallel with DI and CICO | [Poppy] R/W split enabled 3 users | [Poppy] R/W split enabled 10 users | [Poppy] R/W split enabled 30 users | |
ListApp refresh, avg | from 9 min 40 sec to 10 min 40 sec | 8.5 min | 17.7 min | 1.5 min | 2.3 min | Internal server error |
* Query used in lists - "Item status == Checked out". List refresh result is 200K records.
**Query used in lists - "Item status != Available". List refresh result is about 200K records.
Instance CPU Utilization
Service CPU Utilization
During the 10 users test CPU utilization reached 200% for for mod-fqm-manager, 111% for mod-lists.
Memory Utilization
Memory utilization for mod-permissions increased from 48% to 76% during the tests.
DB CPU Utilization
Maximum DB CPU utilization reached 83% (writer instance) and 99% (reader instance) during 30 users test.
DB Connections
DB Load
TOP SQL
Long-running queries:
select id from [tenant]_mod_fqm_manager.drv_item_callnumber_location where lower(cast(item_status as varchar)) <> lower($1) parameters: $1 = 'Available'
delete from list_contents where list_id=$1 and refresh_id=$2