RMB connection caching implementation
- 1 Summary
- 2 Test Results
- 3 Comparison
- 4 Resource utilization for Test #1
- 5 Resource utilization for Test #2
- 6 Resource utilization for Test #3
- 7 Resource utilization for Test #3 RERUN
- 8 Resource utilization for Test #4
- 9 Resource utilization for Test #5
- 10 Resource utilization for Test #6
- 11 Resource utilization for Test #7
- 12 Resource utilization for Test #8
- 12.1 Service CPU Utilization
- 12.2 Service Memory Utilization
- 12.3 DB CPU Utilization
- 12.4 DB Connections
- 12.5 DB load
- 12.6 Top SQL-queries
- 13 Resource utilization for Test #9
- 13.1 Service CPU Utilization
- 13.2 Service Memory Utilization
- 13.3 DB CPU Utilization
- 13.4 DB Connections
- 13.5 DB load
- 13.6 Top SQL-queries
- 14 Resource utilization for Test #10
- 14.1 Service CPU Utilization
- 14.2 Service Memory Utilization
- 14.3 DB CPU Utilization
- 14.4 DB Connections
- 14.5 DB load
- 14.6 Top SQL-queries
- 15 Resource utilization for Test #11
- 15.1 Service CPU Utilization
- 15.2 Service Memory Utilization
- 15.3 DB CPU Utilization
- 15.4 DB Connections
- 15.5 DB load
- 15.6 Top SQL-queries
- 16 Discussion
- 17 Appendix
- 17.1 Infrastructure
- 17.2 Methodology/Approach
Overview
This document contains the results of testing RMB connection caching implementation. Ticket: PERF-815
https://folio-org.atlassian.net/browse/PERF-815
Summary
Compares results of Base Line test(DB_MAXPOOLSIZE=20), Test №1(mod-inventory-storage=40) and Test №2(mod-inventory-storage=40 plus mod-circulation-storage=40) show that shared pool feature leads to performance degradation.
The CI/CO response time for Test №3 and Test №3 RERUN (mod-invetory-storage=2500, mod-circulation-storage=500) is lower, and it has a higher number of database connections compared to the previous test run. These results indicate an improvement in performance attributed to the MAXSHAREDPOOLSIZE parameter.
Almost all tests involving data import are experiencing errors due to database connection timeouts. More details about errors in the Discussion section.
During the comparison test between DB_MAXSHAREDPOOLSIZE = 70 and DB_MAXSHAREDPOOLSIZE = 40, we observed a significant decrease in response time, and importantly, all 15 data imports were successful.
When comparing tests with data import for 30 tenants, the test with DB_MAXSHAREDPOOLSIZE=280 stands out. It demonstrates the stable response time and, crucially, successful data import for all 30 tenants.
All tests have Check-In errors for tenant 8, looks like a problem with data preparation for 8 tenant.
For test №7, 8 and 10 we observe different count of tenants used for data import, but was set 61.
Test Runs
Test № | Date (UA time zone) | Test Conditions | Results |
Baseline Test | 2/29/2024, 12:47:18 PM | DB_MAXPOOLSIZE=20 for list of modules CICO=8 users, Data Import=25K for ONE tenant | Completed |
1 | 03.08.2024 13:34:08 | mod-inventory-storage DB_MAXSHAREDPOOLSIZE=40 (per task, 2 tasks = 80 connections total) other modules DB_MAXPOOLSIZE=20 CICO=8 users, Data Import=25K for ONE tenant | Completed |
2 | 03.08.2024 15:23:46 | mod-inventory-storage DB_MAXSHAREDPOOLSIZE=40 (per task, 2 tasks = 80 connections total) mod-circulation-storage DB_MAXSHAREDPOOLSIZE=40 others modules DB_MAXPOOLSIZE=20 CICO=8 users, Data Import=25K for ONE tenant | Completed |
3 | 3/9/2024, 4:35:33 PM (UA) 3/9/2024, 1:35:33 PM (UTC) | mod-inventory-storage DB_MAXSHAREDPOOLSIZE=2500 mod-circulation-storage DB_MAXSHAREDPOOLSIZE=500 others modules DB_MAXPOOLSIZE=20 CICO=305 users for 61 tenants | Completed |
3 RERUN | 4/2/2024, 4:30:01 PM | mod-inventory-storage DB_MAXSHAREDPOOLSIZE=2500 mod-circulation-storage DB_MAXSHAREDPOOLSIZE=500 others modules DB_MAXPOOLSIZE=20 CICO=305 users for 61 tenants | Completed |
4 | 3/11/2024, 5:50:25 PM | mod-inventory-storage DB_MAXSHAREDPOOLSIZE=2500 mod-circulation-storage DB_MAXSHAREDPOOLSIZE=500 Others modules DB_MAXPOOLSIZE=20 CICO=305 users for 61 tenants, Data Import=10K for 15 tenants | Completed |
5 | 3/12/2024, 12:03:05 PM | DB_MAXSHAREDPOOLSIZE=40 | Failed Data Import |
6 | 3/12/2024, 14:03:50 | DB_MAXSHAREDPOOLSIZE=70 | Completed |
7 | 3/12/2024, 20:23:01 | DB_MAXSHAREDPOOLSIZE=140 | Completed |
8 | 3/13/2024, 7:46:49 PM | DB_MAXSHAREDPOOLSIZE=210 | Completed |
9 | 3/14/2024, 12:47:15 PM | DB_MAXSHAREDPOOLSIZE=210 for mod-invetory-storage | Completed |
10 | 3/15/2024, 11:42:14 AM | DB_MAXSHAREDPOOLSIZE=210 for mod-invetory-storage | Completed |
11 | 3/15/2024, 3:19:02 PM | DB_MAXSHAREDPOOLSIZE=280 | Completed |
Test Results
Baseline Test
DB_MAXPOOLSIZE=20 parameter for list of modules.
Requests | Total per tenant | 50th pct | 75th pct | 95th pct
| 99th pct | Average | CICO Error |
|---|---|---|---|---|---|---|---|
CICO_TC_Check-In | 219 | 0.526 | 0.65 | 0.755 | 0.886 | 0.573 | 0 |
CICO_TC_Check-Out | 195 | 0.999 | 1.217 | 1.451 | 1.566 | 1.093 | 0 |
Test №1
DB_MAXSHAREDPOOLSIZE=40 for mod-inventory-storage and DB_MAXPOOLSIZE=20 parameter for others modules
Requests | Total per tenant | 50th pct | 75th pct | 95th pct
| 99th pct | Average | CICO Error |
|---|---|---|---|---|---|---|---|
CICO_TC_Check-In | 207 | 0.543 | 0.616 | 0.79 | 0.95 | 0.595 | 0 |
CICO_TC_Check-Out | 207 | 1.036 | 1.204 | 1.484 | 1.611 | 1.121 | 0 |
Test №2
DB_MAXSHAREDPOOLSIZE=40 for mod-inventory-storage and mod-circulation-storage plus DB_MAXPOOLSIZE=20 parameter for others modules
Requests | Total per tenant | 50th pct | 75th pct | 95th pct
| 99th pct | Average | CICO Error |
|---|---|---|---|---|---|---|---|
CICO_TC_Check-In | 201 | 0.557 | 0.716 | 1.62 | 3.863 | 0.786 | 0 |
CICO_TC_Check-Out | 205 | 1.047 | 1.326 | 2.738 | 8.324 | 1.461 | 0 |