RCON [Ramsons] ECS - Acquisition Audit Log Performance testing

Overview

  • This document contains the results of Acquisition Audit Log Performance testing for Ramsons [ECS] environments. 

PERF-1027 - Getting issue details... STATUS  

Summary

  • All tests were successfully completed, and all API calls executed without errors.
  • The response time variation for different data sizes or changes in each Order, Order Line, or Piece history is around 5%.
  • The duration for inserting one row remains consistent across different data sizes.
  • All test were executed without any load on background for our system.


Test Runs 

Test №

Date

Test Conditions

Results

1

12/20/24, 13:15 AM UTC

View Order history, View Order Line history and View Pieces history with 10, 50, 100 and 1000 changes on Data Set with 500k records

Completed
212/20/24, 13:11 AM UTC

View Order history, View Order Line history and View Pieces history with 10, 50, 100 and 1000 changes on Data Set with 1 million records

Completed
3

12/20/24, 15:45 PM UTC

View Order history, View Order Line history and View Pieces history with 10, 50, 100 and 1000 changes on Data Set with 5 million records

Completed

Test Results

The following table collect transactions results for tests №1,  №2 and №3.


Transactions

Response Time (milliseconds)
Data size 500k


Data size 1 million


Data size 5 million


Averagepct90Averagepct90Averagepct90
TC_open order 10813251387225268942650
TC_open order 50446687453687469647
TC_open order 100737134373913468141722
TC_open order 1000670884657858680838
TC_open order line 10136331591468346415604083
TC_open order line 50913134392515919361458
TC_open order line 100118117841170197812352242
TC_open order line 1000119715341192148512131529
TC_open pieces 10126826431249262112692645
TC_open pieces 50880106588112549151368
TC_open pieces 100111118441126153111441811
TC_open pieces 1000106212861110130510921489
TC_view order history 10541165255816135441388
TC_view order history 50254383249314265380
TC_view order history 100477805486886505849
TC_view order history 1000452647445528464681
TC_view order line history 10754161073815648231974
TC_view order line history 50452619449587489788
TC_view order line history 10069510686771037718968
TC_view order line history 10007339007601207746926
TC_view pieces history 10753143374514227821801
TC_view pieces history 50452701449632454626
TC_view pieces history 100670100865610867011081
TC_view pieces history 10007109457011095694862

The following table collect API results for tests №1,  №2 and №3:

  • GET audit-data/acquisition/order/order_id
  • GET audit-data/acquisition/order-line/order_line_id
  • GET audit-data/acquisition/piece/piece_id/status-change-history


Transactions

Response Time (milliseconds)
Data size 500kData size 1 millionData size 5 millionData size 500kData size 1 millionData size 5 million
AverageAverageAveragepct90pct90pct90
GET audit-data/acquisition/order/[order_10]272834727489
GET audit-data/acquisition/order-line/[po_line_id_10]292729777090
GET audit-data/acquisition/piece/]pieces_10]/status-change-history282827646869
GET audit-data/acquisition/order/[order_50]181618584748
GET audit-data/acquisition/order-line/[po_line_id_50]2023405360344
GET audit-data/acquisition/piece/]pieces_50]/status-change-history172019445151
GET audit-data/acquisition/order/[order_100]222023625966
GET audit-data/acquisition/order-line/[po_line_id_100]272532656375
GET audit-data/acquisition/piece/]pieces_100]/status-change-history222123616260
GET audit-data/acquisition/order/[order_1000]4752481009881
GET audit-data/acquisition/order-line/[po_line_id_1000]122126132212231222
GET audit-data/acquisition/piece/]pieces_1000]/status-change-history60505311710596


The following table collect INSERT INTO duration results for different data size.


Data size 500kData size 1 millionData size 5 millionData size 1 millionData size 5 million

INSERT INTO 
1 row
INSERT INTO 
1 row
INSERT INTO 
1 row
INSERT INTO 
100k
INSERT INTO 
100k
Order
acquisition_order_log
201 msec211 msec236 msec4 secs 361 msec5 secs 330 msec
Order Line
acquisition_order_line_log
198 msec222  msec191 msec6 secs 857 msec7 secs 73 msec
Pieces
acquisition_piece_log
183 msec239 msec303 msec4 secs 399 msec4 secs 393 msec

The following table collect size for tables and indexes.

table_nametable_sizeindexes_sizerow_count
cs00000int_mod_audit.acquisition_order_log2811 MB358 MB5.300.543
cs00000int_mod_audit.acquisition_order_line_log11 GB366 MB5.400.089
cs00000int_mod_audit.acquisition_piece_log3957 MB374 MB5.220.071

Comparison

Test №1-№2-№3

  • The following table compares the average response times for all transactions between tests №1,  №2 and №3. 


  • The following table compares the average response times for API calls:
    • GET audit-data/acquisition/order/order_id
    • GET audit-data/acquisition/order-line/order_line_id
    • GET audit-data/acquisition/piece/piece_id/status-change-history




Resource utilization for Test #1-2-3

 Resource utilization table
CPU  RAM  
mod-inventory-b1.40%mod-inventory-b75%
mod-search-b0.20%mod-finance-b68%
mod-inventory-storage-b0.10%mod-orders-b55%
mod-orders-storage-b0.10%mod-orders-storage-b44%
mod-orders-b0.10%mod-audit-b39%
mod-audit-b0.10%mod-search-b39%
mod-finance-b0.10%mod-finance-storage-b32%
mod-finance-storage-b0.10%mod-inventory-storage-b23%

Service CPU Utilization

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

Service Memory Utilization

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

Kafka metrics


OpenSearch Data Nodes metrics

DB CPU Utilization

DB CPU in the average was 12% for all Scenarios.

DB Connections

Max DB connections was 1250.

DB load

                                                                                                                     

Top SQL-queries


Appendix

Infrastructure

PTF - environment Ramsons (rcon)

  • 10 m6g.2xlarge EC2 instances located in US East (N. Virginia)us-east-1 [Number of ECS instances, instance type, location region]

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

  • OpenSearch

    • domain: ptf-test

    • Number of nodes: 7

    • Version: OpenSearch_2_13_R20240520-P5

  • MSK - fse-tenant

    • 4 kafka.m7g.xlarge brokers in 2 zones

    • Apache Kafka version 3.7.x

    • EBS storage volume per broker 300 GiB

    • auto.create.topics.enable=true

    • log.retention.minutes=480

    • default.replication.factor=3


 RCON modules memory and CPU parameters

rcon-pvt (Wed Dec 11 13:14:17 UTC 2024)

ModuleTask Definition RevisionModule VersionTask CountMem Hard LimitMem Soft LimitCPU UnitsXmxMetaspace SizeMax Metaspace Size
mod-remote-storage7mod-remote-storage:3.3.224920447203960512512
mod-finance-storage7mod-finance-storage:8.7.321024896070088128
mod-ncip7mod-ncip:1.15.621024896076888128
mod-agreements7mod-agreements:7.1.22159214880000
mod-ebsconet7mod-ebsconet:2.3.02124810240700128256
mod-organizations7mod-organizations:2.0.021024896070088128
mod-consortia9mod-consortia:1.2.1251364776020485121024
edge-sip27edge-sip2:3.3.121024896076888128
mod-serials-management7mod-serials-management:1.1.122480231201792384512
mod-settings7mod-settings:1.1.021024896076888128
mod-data-import7mod-data-import:3.2.112048184401292384512
mod-search15mod-search:4.0.2225922480014405121024
edge-dematic7edge-dematic:2.3.111024896076888128
mod-inn-reach4mod-inn-reach:3.2.1-SNAPSHOT.102236003240028805121024
mod-record-specifications7mod-record-specifications:1.0.221024896076888128
mod-tags7mod-tags:2.3.021024896076888128
mod-authtoken9mod-authtoken:2.16.1214401152092288128
edge-courses7edge-courses:1.5.021024896076888128
mod-notify7mod-notify:3.3.021024896076888128
mod-inventory-update7mod-inventory-update:4.0.021024896076888128
mod-configuration7mod-configuration:5.11.021024896076888128
mod-orders-storage7mod-orders-storage:13.8.321024896070088128
edge-caiasoft7edge-caiasoft:2.3.221024896076888128
mod-login-saml7mod-login-saml:2.9.321024896076888128
mod-erm-usage-harvester7mod-erm-usage-harvester:5.0.121024896076888128
mod-gobi7mod-gobi:2.9.021024896070088128
mod-licenses7mod-licenses:6.1.222480231201792384512
mod-password-validator7mod-password-validator:3.3.02144012980768384512
edge-dcb8edge-dcb:1.2.121024896076888128
mod-bulk-operations7mod-bulk-operations:2.1.423072260001536384512
mod-fqm-manager9mod-fqm-manager:3.0.3230002600076888128
mod-graphql8mod-graphql:1.13.021024896076888128
mod-finance7mod-finance:5.0.021024896070088128
mod-erm-usage7mod-erm-usage:5.0.022800255001800384512
mod-batch-print7mod-batch-print:1.2.021024896076888128
mod-tlr4mod-tlr:1.0.0-SNAPSHOT.821024896076888128
mod-lists11mod-lists:3.0.3260002600076888128
mod-copycat7mod-copycat:1.7.021024512076888128
mod-entities-links10mod-entities-links:3.1.12259224800144001024
mod-permissions11mod-permissions:6.6.021684154401024384512
pub-edge7pub-edge:2023.06.1401024896076800
mod-orders7mod-orders:12.9.222048174001024384512
edge-patron7edge-patron:5.2.021024896076888128
mod-marc-migrations15mod-marc-migrations:1.0.121024896076888128
edge-ncip8edge-ncip:1.10.121024896076888128
edge-inn-reach5edge-inn-reach:3.3.0-SNAPSHOT.6921024896076888128
mod-users-bl7mod-users-bl:7.9.3214401152092288128
mod-oa4mod-oa:2.1.0-SNAPSHOT.6621024896076888128
mod-inventory-storage8mod-inventory-storage:28.0.2240963690030765121024
mod-invoice7mod-invoice:5.9.1214401152092288128
mod-user-import7mod-user-import:3.9.021024896076888128
mod-sender7mod-sender:1.13.021024896076888128
edge-oai-pmh7edge-oai-pmh:2.10.021512136001440384512
mod-data-export-worker8mod-data-export-worker:3.3.323072204802048384512
mod-rtac7mod-rtac:3.7.021024896076888128
mod-circulation-storage7mod-circulation-storage:17.3.122880259201814384512
mod-source-record-storage12mod-source-record-storage:5.9.325600500003500384512
mod-calendar7mod-calendar:3.2.021024896076888128
mod-event-config7mod-event-config:2.8.021024896076888128
mod-courses8mod-courses:1.4.1121024896076888128
mod-circulation-item7mod-circulation-item:1.1.0210248960000
mod-inventory7mod-inventory:21.0.222880259201814384512
mod-email7mod-email:1.18.022800255001800384512
mod-requests-mediated4mod-requests-mediated:1.0.0-SNAPSHOT.421024896076888128
mod-circulation7mod-circulation:24.3.222880259201814384512
mod-pubsub7mod-pubsub:2.15.22153614400922384512
mod-di-converter-storage7mod-di-converter-storage:2.3.121024896076888128
edge-rtac7edge-rtac:2.8.021024896076888128
edge-orders7edge-orders:3.1.021024896076888128
mod-users7mod-users:19.4.321024896076888128
mod-template-engine7mod-template-engine:1.21.021024896076888128
mod-patron-blocks7mod-patron-blocks:1.11.121024896076888128
mod-audit7mod-audit:2.10.121024896076888128
edge-fqm8edge-fqm:3.0.121024896076888128
mod-source-record-manager7mod-source-record-manager:3.9.325600500003500384512
nginx-edge7nginx-edge:2023.06.14010248960000
mod-quick-marc7mod-quick-marc:6.0.012288217601664384512
nginx-okapi7nginx-okapi:2023.06.14210248960000
okapi-b7okapi:6.1.02168414400922384512
mod-feesfines7mod-feesfines:19.2.121024896076888128
mod-invoice-storage7mod-invoice-storage:5.9.121872153601024384512
mod-reading-room7mod-reading-room:1.0.021024896076888128
mod-dcb7mod-dcb:1.2.321024896076888128
mod-service-interaction7mod-service-interaction:4.1.122048184401290384512
mod-patron7mod-patron:6.2.121024896076888128
mod-data-export12mod-data-export:5.1.21204818440000
mod-oai-pmh7mod-oai-pmh:3.14.324096369003076384512
edge-connexion7edge-connexion:1.3.121024896076888128
mod-notes7mod-notes:6.0.0210248960952384512
mod-kb-ebsco-java8mod-kb-ebsco-java:5.0.021024896076888128
mod-organizations-storage7mod-organizations-storage:4.8.121024896070088128
mod-data-export-spring7mod-data-export-spring:3.4.212048184401536384512
mod-login7mod-login:7.12.12144012980768384512
pub-okapi7pub-okapi:2023.06.1421024896076800
edge-erm5edge-erm:1.3.021024896076888128
mod-eusage-reports7mod-eusage-reports:3.0.021024896076888128


Methodology/Approach

All tests scenarios  were started from Load Generator i-066a4ed5e6ec777bc on Ramsons ECS (rcon) environment.

Parameters for Tests:

  • Number of users: 1
  • Test duration: 20min
  • Each test scenario was conducted with the following dataset sizes for mod_audit.acquisition_order_log, mod_audit.acquisition_order_line_log and mod_audit.acquisition_piece_log tables:
    • 500k records
    • 1 million records
    • 5 million records
  • No pause between user action

Test scenario №1

  • Open Order tub

  • Open Order (with 10 changes in history)

  • View Order history
  • Open Order Line (with 10 changes in history)

  • View Order Line history
  • Open Pieces (with 10 changes in history)

  • View Pieces history

Test scenario №2

  • Open Order tub

  • Open Order (with 50 changes in history)

  • View Order history
  • Open Order Line (with 50 changes in history)

  • View Order Line history
  • Open Pieces (with 50 changes in history)

  • View Pieces history

Test scenario №3

  • Open Order tub

  • Open Order (with 100 changes in history)

  • View Order history
  • Open Order Line (with 100 changes in history)

  • View Order Line history
  • Open Pieces (with 100 changes in history)

  • View Pieces history

Test scenario №4

  • Open Order tub

  • Open Order (with 1000 changes in history)

  • View Order history
  • Open Order Line (with 1000 changes in history)

  • View Order Line history
  • Open Pieces (with 1000 changes in history)

  • View Pieces history

Attached files

JMeter script: