[Poppy] List App on a single tenant and R/W split enabled and multiple lists
- 1 Overview
- 2 Summary
- 3 Test runs
- 4 Results
- 4.1 CPU Utilization
- 4.1.1 LA_test_1
- 4.1.2 LA_test_5
- 4.1.3 LA_test_10
- 4.2 Memory Utilization
- 4.2.1 LA_test_1.
- 4.2.2 LA_test_5
- 4.2.3 LA_test_10
- 4.3 DB CPU Utilization
- 4.4 DB Connections
- 4.5 DB Load
- 4.1 CPU Utilization
- 5 Appendix
Overview
This document contains the results of testing Lists App refreshing multiple concurrent lists with different queries MODLISTS-58 on a single tenant with R/W split enabled (Poppy release). The goal of testing is to assess the performance of the Lists App modules (mod-lists, mod-fqm-manager) with load from across multiple concurrent users.
Ticket: https://folio-org.atlassian.net/browse/PERF-811
Summary
All tests were finished successfully. List for query (item_effective_call_number_type_name == Library of Congress classification) AND (item_effective_location_name not in [acq admin, Administration Office]) AND (item_status == Available) AND (item_material_type == book) AND (item_updated_date > 2019-07-01) was not created because of long creation duration(> 5 hours)
Performance testing of Lists App refreshing was performed for 1, 5, and 10 parallel threads (virtual users). With the increase in the number of threads, the duration increased in some cases by 4 times.
For all 3 tests, the services CPU utilization has about the same value. It reached a maximum of 40% for mod-fqm-manager and 35% for mod-lists. No memory leak is suspected for all the modules.
Database CPU utilization on LA_test_5 and LA_test_10 was a maximum of 95% on the reader instance and 60% on the writer instance. Reader instance is a bottleneck
Test runs
LA_test_1 - was executed to collect baseline metrics. 30 lists were updated one after another, from first to last. Number of loops =3;
LA_test_5 - load test for 5 concurrent threads;
LA_test_10 - load test for 10 concurrent threads.
Results
List-APP Query |
List ID | Record count | Avarage duration, seconds LA_test_1 | Duration, sec 5VU LA_test_5 | Duration, sec 10VU LA_test_10 | |
---|---|---|---|---|---|---|
1 | item_status in [Aged to lost, Claimed returned, Declared lost, Long missing, Missing] | fb9f3393-4383-44d2-b9e7-1680aa42c6fd | 53870 | 45 | 89 | 137 |
2 | item_status != Available | 49da7c31-936f-4044-ae0b-8defb049f2e7 | 194923 | 228 | 259 | 294 |
3 | instance_updated_date > 2019-07-20 | 369cbfd4-e48f-4e0d-8a41-aad011d0d705 | 815097 | 2046 | 3521 | 2189 |
4 | instance_primary_contributor contains Smith | 4152d2df-9467-46d9-a4a2-6e063cf63c1b | 26453 | 3279 | 2902 | 4500 |
5 | item_permanent_location_name == acq_admin(item_permanent_location_name == acq admin) AND (item_status in [Available, Awaiting delivery, Awaiting pickup]) | b8e3797b-b8c8-4269-8fc9-96cae17804be | 9999 | 42 | 83 | 152 |
6 | item_material_type not In book, electronic resource | 9ddc4e10-3466-457d-8ddb-d7c5a44dfb1a | 8285 | 152 | 222 | 262 |
7 | item_copy_number != c.1 | 25e4949f-cd73-4785-bcc3-0d4f58810b93 | 539634 | 585 | 932 | 834 |
8 | (item_effective_call_number_type_name == Library of Congress classification) AND (item_effective_call_number starts with D) | d5ffead3-969c-4db4-83c5-361919580e62 | 851761 | 1008 | 1793 | 2940 |
9 | (item_material_type == book) AND (item_created_date >= 2018-01-01) AND (item_created_date <= 2021-01-01) | 063beade-a5e7-4127-bea4-6104c2956cda | 119057 | 114 | 215 | 174 |
10 | instance_id in [list] | 87762249-5c9b-4165-aafd-2707e1e65388 | 13 | 957 | 1185 | 1056 |
11 | item_permanent_location_name == acq admin | 83856618-c2fb-4fe7-b81a-fe03451c6e90 | 10016 | 41 | 42 | 132 |
12 | (instance_id not in [970a8b97-d58c-46e4-9766-f777a99abc2c, 7ef91348-858a-4860-925f-77077410249d, 9796d69d-0acf-429d-a23f-eaa5aac84c7c]) AND (item_status not in [Available, In transit, Paged, Restricted]) | 2efb4077-83d4-4dcb-bda8-d5d869153739 | 194923 | 213 | 212 | 457 |
13 | instance_title contains africa | 55b1aa25-245a-409e-9849-a4ef1c6034c1 | 65085 | 3495 | 2934 | canceled |
14 | id in [list[100]] | 0c37b4d0-93f1-4cfd-a359-e97d239b7e8a | 100 | 880 | 827 | 1102 |
15 | (item_permanent_location_name == UC/HP/ASR/JRLASR) AND (item_temporary_location_name != UC/HP/ASR/JRLASR) | 06c87637-00a6-43ed-b9ff-9c6bc243cd01 | 14965 | 43 | 43 | 123 |
16 | item_status == Checked out | fd201d94-6ae5-46bd-836f-a1836bc2c79a | 55449 | 159 | 226 | 34 |
17 | (user_active == false) AND (loan_status == Open) | 0885f86c-1ffc-4264-9b15-d6555228ad53 | 213 | 10 | 10 | 10 |
18 | (loan_status == Open) AND (item_status == Available) | 30a8b2ea-6510-4a41-9602-1f1e05e91b54 | 0 | 30 | 40 | 200 |
19 | (loan_checkout_date > 2020-01-01) AND (loan_checkout_date < 2021-01-01) | accb9b80-b859-4fa5-abc6-38bae090f18c | 5158 | 11 | 11 | 11 |
20 | loan_policy_name in [stksq3r, stksqunlim, stksyearly] | 845dd6a0-e0a4-43e3-bb6a-087b415da2ce | 31183 | 17 | 21 | 18 |
21 | (loan_status == Open) AND (user_expiration_date <= 2023-12-31) | a9b70301-fb06-4514-9bc1-feb76548864e | 4109 | 10 | 11 | 41 |
22 | loan_status == Open | 99d1b3c3-98df-4221-b8e8-1c7ae74796e1 | 55449 | 25 | 115 | 80 |
23 | (loan_status == Open) AND (user_patron_group not in [Faculty, Staff]) AND (item_material_type == book) | 8d0a6db9-316c-4103-81ed-6f969b622932 | 55449 | 24 | 120 | 49 |
24 | user_active == true | 2b69b854-b440-4f6f-b1d8-a3bb606f10ec | 84899 | 50 | 42 | 42 |
25 | user_patron_group not in [Undergraduate, Graduate] | 01378c7c-ae29-4944-90da-646def8140e0 | 90625 | 41 | 51 | 67 |
26 | user_patron_group in [Undergraduate, Graduate] | 48943943-5ce2-44a7-9bed-b2af4d12f1f4 | 17 | 10 | 10 | 10 |
27 | user_primary_address contains CA | 89dccdbe-4a0c-4c26-b3f9-88924b7d5be4 | 15886 | 13 | 15 | 14 |
28 | user_preferred_contact_type not in [Email, Text Message] | e2e9dd7a-d069-4ade-85f7-a0b61696bf98 | 90016 | 45 | 57 | 38 |
29 | user_barcode starts with 0 | bb641ed1-49d6-4a35-ae99-b92add32ed0f | 90040 | 38 | 68 | 44 |
CPU Utilization
LA_test_1
During the LA_test_1 test CPU utilization reached a maximum of 33% for mod-fqm-manager and 30% for mod-lists.
LA_test_5
During the test CPU utilization reached a maximum of 40% for mod-fqm-manager and 30% for mod-lists.
LA_test_10
During the test CPU utilization reached a maximum of 40% for mod-fqm-manager and 37% for mod-lists.
Memory Utilization
No memory leak is suspected for all the modules during all tests.
LA_test_1.
The mod-fqm-manager service increased the use of CPU from 64% to 84% and mod-lists from 62% to 68%
LA_test_5
The mod-fqm-manager service increased the use of CPU from 86% to 92% and mod-lists from 74% to 76%
LA_test_10
The mod-fqm-manager service increased the use of CPU from 87% to 92% and mod-lists from 76% to 77%
DB CPU Utilization
Maximum DB CPU utilization reached 57% (writer instance) and 82% (reader instance) during the LA_test_1 test.
Maximum DB CPU utilization reached 60% (writer instance) and 95% (reader instance) during the LA_test_5 test.
Maximum DB CPU utilization reached 73% (writer instance) and 94% (reader instance) during the LA_test_10 test.
DB Connections
During all tests, the number of connections to the reader instance = 20; the number of connections to the writer instance ~400;
LA_test_1
LA_test_5
LA_test_10
DB Load
LA_test_1
Writer instance
Reader instance
LA_test_5
Writer instance
Reader instance
LA_test_10
Writer instance
Reader instance
Appendix
Infrastructure
PTF -environment pcp1
10 m6i.2xlarge EC2 instances located in US East (N. Virginia)us-east-1
DB Cluster with 2 instances (reader and writer)
NameAPI NameMemory GIBvCPUsmax_connectionsR6G Extra Largedb.r6g.xlarge32 GiB4 vCPUs2731
MSK tenant
4 m5.2xlarge brokers in 2 zonesApache Kafka version 2.8.0
EBS storage volume per broker 300 GiB
auto.create.topics.enable=true
log.retention.minutes=480
default.replication.factor=3
Module | Task Def. Revision | Module Version | Task Count | Mem Hard Limit | Mem Soft limit | CPU units |
---|