Skip to end of banner
Go to start of banner

[Poppy] List App with multiple tenants and R/W split enabled

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 10 Next »

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-665 - Getting 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

TransactionSingle 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 min17.7 min1.5 min2.3 minInternal 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




  • No labels