PTF - Data Export Test Report (Ramsons) [NON-ECS]

PTF - Data Export Test Report (Ramsons) [NON-ECS]

Overview

  • This document contains the results of testing Data Export (MARC BIB) on the Ramsons [NON-ECS] release on rcp1 environment.

PERF-968 - Getting issue details... STATUS  

Summary

  • Data Export tests finished successfully on rcp1 environment using the profiles Default instances export job profile and SRS - holdings and items job profile.
  • Comparing with previous testing results Quesnelia and Ramsons releases
    • Data Export processed all files including file with 500k records without errors for Ramsons releases.
    • Data Export durations improved  - around 10% in Average for Ramsons releases.

Test Results

This table contains durations for Data Export with two job profiles. 

Profile

CSV  FileTenant (fs09000000)
ResultStatus
DE MARC Bib (Default instances export job profile)

1k.csv0:00:03COMPLETED
100k.csv0:02:19COMPLETED
500k.csv0:04:33COMPLETED
DE MARC Bib (SRS - holdings and items job profile)

1k.csv0:00:06COMPLETED
100k.csv0:07:02COMPLETED
500k.csv0:08:57COMPLETED


Comparison

This table contains durations comparison between Ramsons and Quesnelia releases.

ProfileCSV  FileDE Duration
Ramsons 

DE Duration
Quesnelia

DE Duration, DELTA Poppy/Quesnelia
Result
hh:mm:ss
Result
hh:mm:ss
hh:mm:ss / percent
DE MARC Bib (Default instances export job profile)1k.csv0:00:030:00:02

+00:00:01

100k.csv0:02:190:02:39

-00:00:20
-12%

500k.csv0:04:330:05:21

-00:00:48
-15%

DE MARC Bib (SRS - holdings and items job profile)1k.csv0:00:060:00:05

+00:00:01

100k.csv0:07:020:08:15

-00:01:13
-15%

500k.csv0:08:570:09:22

-00:00:25
-5%


Resource utilization for Test #1 and Test #2

 Resource utilization table
CPU RAM 
mod-data-export-b42%mod-data-export-b79%
mod-inventory-b1.40%mod-inventory-b64%
mod-source-record-storage-b0.40%okapi-b51%
mod-source-record-manager-b0.10%mod-users-bl-b42%
mod-inventory-storage-b0.10%mod-source-record-storage-b28%
okapi-b0.10%mod-inventory-storage-b27%
mod-authtoken-b0.10%mod-authtoken-b18%
mod-users-bl-b0.10%mod-source-record-manager-b18%
nginx-okapi0.10%nginx-okapi4%

Instance CPU Utilization

Service CPU Utilization

Here we can see that mod-data-export used 42% CPU in spike.

Service Memory Utilization

Here we can see that all modules show a stable trend.

DB CPU Utilization

DB CPU spike was 45%.

DB Connections

DB connections was 1134.

Kafka metrics


OpenSearch Data Nodes metrics

DB load

                                                                                                                     

Top SQL-queries

Top applications


Appendix

Infrastructure

PTF - environment Ramsons NON-ECS (rcp1)

  • rcp1 6 r7g.2xlarge EC2 instances located in US East (N. Virginia)us-east-1

  • 1 instance of db.r6.xlarge database instance: Writer instance

  • MSK fse-test
      • 4 kafka.m7g.xlarge brokers in 2 zones (2 brokers per zone)
      • Apache Kafka version 3.7.x, metadata mode - KRaft

      • EBS storage volume per broker 300 GiB

      • auto.create.topics.enable=true
      • log.retention.minutes=480
      • default.replication.factor=2
      • revision - 26
  • OpenSearch 2.13 ptf-test cluster
    • r6g.2xlarge.search 4 data nodes

    • r6g.large.search 3 dedicated master nodes


 Ramsons modules memory and CPU parameters

Cluster Resources - rcp1-pvt (Thu Jan 30 12:56:18 UTC 2025)

Task Definition RevisionModule VersionTask CountMem Hard LimitMem Soft LimitCPU UnitsXmxMetaspace SizeMax Metaspace Size
12mod-remote-storage:3.3.524920447203960512512
9mod-ncip:1.15.621024896076888128
10mod-finance-storage:8.7.321024896070088128
12mod-agreements:7.1.52159214880000
11mod-ebsconet:2.3.12124810240700128256
9mod-organizations:2.0.021024896070088128
4mod-consortia:1.2.2251364776044165121024
10edge-sip2:3.3.121024896076888128
10mod-settings:1.1.021024896076888128
12mod-serials-management:1.1.322480231201792384512
9edge-dematic:2.3.111024896076888128
10mod-data-import:3.2.412048184401292384512
24mod-search:4.0.8225922480014405121024
5mod-inn-reach:3.2.1-SNAPSHOT.102236003240028805121024
18mod-record-specifications:1.0.221024896076888128
9mod-tags:2.3.021024896076888128
10mod-authtoken:2.16.1214401152092288128
11edge-courses:1.5.121024896076888128
9mod-notify:3.3.021024896076888128
9mod-inventory-update:4.0.021024896076888128
9mod-configuration:5.11.021024896076888128
10mod-orders-storage:13.8.321024896070088128
9edge-caiasoft:2.3.221024896076888128
9mod-login-saml:2.9.321024896076888128
10mod-erm-usage-harvester:5.0.221024896076888128
9mod-password-validator:3.3.02144012980768384512
9mod-gobi:2.9.021024896070088128
10mod-licenses:6.1.222480231201792384512
10edge-dcb:1.2.221024896076888128
12mod-bulk-operations:2.1.1023072260001536384512
24mod-fqm-manager:3.0.1023000260002048384512
11mod-graphql:1.13.121024896076888128
11mod-finance:5.0.121024896070088128
9mod-erm-usage:5.0.021024896076888128
9mod-batch-print:1.2.021024896076888128
5mod-tlr:1.0.0-SNAPSHOT.821024896076888128
19mod-lists:3.0.8260002600076888128
9mod-copycat:1.7.021024512076888128
15mod-entities-links:3.1.32259224800144001024
20mod-permissions:6.6.121684154401024384512
7pub-edge:2023.06.1421024896076800
12mod-orders:12.9.1022048144001024384512
11edge-patron:5.2.121024896076888128
9edge-ncip:1.10.121024896076888128
31mod-marc-migrations:1.0.021024896076888128
4edge-inn-reach:3.3.0-SNAPSHOT.6921024896076888128
10mod-users-bl:7.9.3214401152092288128
6mod-oa:2.1.0-SNAPSHOT.66220488960180088512
11mod-invoice:5.9.2214401152092288128
18mod-inventory-storage:28.1.0-SNAPSHOT.792240963690030765121024
9mod-user-import:3.9.021024896076888128
9mod-sender:1.13.021024896076888128
10edge-oai-pmh:2.10.021512136001440384512
12mod-data-export-worker:3.3.823072204802048384512
9mod-rtac:3.7.021024896076888128
12mod-circulation-storage:17.3.522880259201814384512
17mod-source-record-storage:5.9.725600500003500384512
10mod-calendar:3.2.021024896076888128
9mod-event-config:2.8.021024896076888128
9mod-courses:1.4.1121024896076888128
9mod-circulation-item:1.1.0210248960000
12mod-inventory:21.0.922880259201814384512
11mod-email:1.18.121024896076888128
13mod-requests-mediated:1.0.0-SNAPSHOT.421024896076888128
10mod-di-converter-storage:2.3.121024896076888128
12mod-pubsub:2.15.42153614400922384512
12mod-circulation:24.3.1122880259201814384512
9edge-orders:3.1.021024896076888128
9edge-rtac:2.8.021024896076888128
9mod-template-engine:1.21.021024896076888128
11mod-users:19.4.521024896076888128
10mod-patron-blocks:1.11.121024896076888128
11mod-audit:2.10.221024896076888128
11edge-fqm:3.0.221024896076888128
16mod-source-record-manager:3.9.725600500003500384512
7nginx-edge:2023.06.14210248960000
9mod-quick-marc:6.0.012288217601664384512
7nginx-okapi:2023.06.14210248960000
10okapi:6.1.132024144001024384512
10mod-feesfines:19.2.221024896076888128
10mod-invoice-storage:5.9.121872153601024384512
10mod-reading-room:1.0.021024896076888128
11mod-service-interaction:4.1.122048184401290384512
12mod-dcb:1.2.621024896076888128
14mod-data-export:5.1.61204818440000
12mod-patron:6.2.621024896076888128
11mod-oai-pmh:3.14.424096369003076384512
9edge-connexion:1.3.121024896076888128
9mod-notes:6.0.0210248960952384512
9mod-kb-ebsco-java:5.0.021024896076888128
10mod-login:7.12.12144012980768384512
9mod-organizations-storage:4.8.121024896070088128
11mod-data-export-spring:3.4.312048184401536384512
7pub-okapi:2023.06.1421024896076800
8edge-erm:1.3.021024896076888128
9mod-eusage-reports:3.0.021024896076888128


Methodology/Approach

Data Export tests scenario using the profiles Default instances export job profile and SRS - holdings and items were started from UI on Ramsons (rcp1) NON-ECS environment.

Test set

  • Test 1: Manually tested 1k, 100k and 500k records files Data Export started on Main tenant (fs09000000) only using Default instances export job profile.
  • Test 2: Manually tested 1k, 100k and 500k records files Data Export started on Main tenant (fs09000000) only using SRS - holdings and items job profile. 

To get status and time range for export jobs the query used: 

SQL Query
SELECT 
jsonb->>'status' AS status,
to_timestamp((jsonb->>'startedDate')::bigint / 1000) AS startedDate,
to_timestamp((jsonb->>'completedDate')::bigint / 1000) AS completedDate,
job_profile_name,
exported_file->>'fileName' AS fileName,

to_char(
(to_timestamp((jsonb->>'completedDate')::bigint / 1000) - to_timestamp((jsonb->>'startedDate')::bigint / 1000))::interval, 
'HH24:MI:SS'
) AS duration_hhmmss,
(jsonb->>'completedDate')::bigint - (jsonb->>'startedDate')::bigint AS duration_ms
FROM 
fs09000000_mod_data_export.job_executions,
jsonb_array_elements(jsonb->'exportedFiles') AS exported_file
WHERE 
(jsonb->>'hrId')::int IN (11128, 11129, 11130, 11131, 11132, 11133)
ORDER BY 
jsonb->>'startedDate' ASC
LIMIT 10;


Related content