Copy of PTF - Performance testing of Export All Endpoint (Quesnelia) [non-ECS]
Overview
This document contains results of testing Data Export All by the endpoint (POST data-export/export-all) with Default instances, authority, export holdings job profiles and with the custom profile Example 1 on the Quesnelia [non-ECS] release on qcp1 environment.
https://folio-org.atlassian.net/browse/PERF-890
Summary
Data Export tests finished successfully on qcp1 environment using the Default instances, authority, holdings export job profile and Custom Mapping Profiles - Example 1.
During the tests data-export-all with Custom Mapping Profiles - Example 1 we observe Errors converting json to marc for instances with 9 and more holdings, task for investigation was created https://folio-org.atlassian.net/browse/MDEXP-780
Two very slow queries when checking deleted records in tables mod_inventory_storage.audit_instance and mod_inventory_storage.audit_holdings_record for Data-Export-All, task for investigation was created https://folio-org.atlassian.net/browse/MODINVSTOR-1234
No memory leaks are observed.
The data export duration for default profiles and the duration for the concurrent test of default profiles plus the export of 10,000 instances with a custom profile are the same. This is because Data-Export-All uses one data-export module task, so if we run concurrent tests, each job will be executed on a separate data-export module task, because data-export module has two tasks.
Test Runs and Results
This table contains durations for Data Export.
Test # | Job Profile | Count of exported records | Data Export Duration | Results |
|---|---|---|---|---|
1 | Default instances export job profile | 19664506 | 3:03:59 | COMPLETED |
Custom Mapping Profiles - Example 1 | 10000 | 0:11:14 | ||
2 | Default authority export job profile | 6186517 | 3:29:03 | COMPLETED |
Custom Mapping Profiles - Example 1 | 10000 | 0:01:49 | ||
3 | Default holdings export job profile | 20669235 | 1:46:56 | COMPLETED |
Custom Mapping Profiles - Example 1 | 10000 | 0:01:22 | ||
4 | Default instances export job profile | 19789508 | 2:34:09 | COMPLETED |
5 | Default holdings export job profile | 20794226 | 1:46:16 | COMPLETED |
6 | Default authority export job profile | 6186517 | 3:28:51 | COMPLETED |
7 | Custom Mapping Profiles - Example 1 | 19789503 | 5:51:08 | COMPLETED_WITH_ERRORS |
Resource utilization for Test №1, №2 and №3
Service CPU Utilization
Here we can see that mod-data-export used 150% CPU.
Service Memory Utilization
Here we can see that data-export module used 95% memory.
Kafka metrics
DB CPU Utilization
DB CPU was 90%.
DB Connections
Max number of DB connections was 750
DB load
Top SQL-queries
# | TOP 5 SQL statements |
|---|---|
1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
Resource utilization for Test №4, №5 and №6
Service CPU Utilization
Here we can see that mod-data-export used 194% CPU.
Service Memory Utilization
Here we can see that all modules show a stable trend except mod-source-record-manager.
Kafka metrics
DB CPU Utilization
DB CPU was 92%.
DB Connections
Max number of DB connections was 762.
DB load
Top SQL-queries
# | TOP 5 SQL statements |
|---|---|
1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
Resource utilization for Test №7
Service CPU Utilization
Here we can see that mod-data-export used 145% CPU.
Service Memory Utilization
Here we can see that mod-data-export used 93% memory .
Kafka metrics
DB CPU Utilization
DB CPU was 82%.
DB Connections
Max number of DB connections was 730.
DB load
Top SQL-queries
# | TOP 5 SQL statements |
|---|---|
1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
Appendix
Infrastructure
PTF -environment qcp1
10 m6i.2xlarge EC2 instances located in US East (N. Virginia)us-east-1
1 database instance, writer
Number of records in DB:
fs09000000
instances - 27289981
items - 28463562
holdings - 27535678
authorities - 6193573
Open Search ptf-test
Data nodes
Instance type - r6g.2xlarge.search