Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents
outlinetrue

O

verview

  • This document contains the results of Central Ordering testing scenarios to create order with PO lines plus Change instance connection and Receive all pieces for Ramsons [ECS] environments. 

Jira LegacyserverSystem JiracolumnIdsissuekey,summary,issuetype,created,updated,duedate,assignee,reporter,priority,status,resolutioncolumnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolutionserverId01505d01-b853-3c2e-90f1-ee9b165564fckey

Table of Contents
outlinetrue

O

verview

  • This document contains the results of Central Ordering testing scenarios to create order with PO lines plus Change instance connection and Receive all pieces for Ramsons [ECS] environments. 

Jira Legacy
serverSystem Jira
columnIdsissuekey,summary,issuetype,created,updated,duedate,assignee,reporter,priority,status,resolution
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId01505d01-b853-3c2e-90f1-ee9b165564fc
keyPERF-1027
 

Summary

  • All tests were successfully completed, and all API calls were executed without errors.
  • Response time for Change Instance Connection for Test №2 increased by 45% compared to Test №1 and for Test №3 Response time increased by 125% compared to Test 1. It appears that the Find or Create New Holdings action performed multiple operations, which explains the extended response time for this action.
  • In Test 3, the Create Order operation involved creating orders with 50 Order Lines, compared to 1 Order Lines in Test 1 and 10 Order Lines in Test 2. This explains the significant increase in response times for the Open Order and Unopen Order operations:

    • Open Order: Response times increased nearly 10x in Test 3 compared to Test 1 due to the higher load (50 items per order).
    • Unopen Order: Similarly, response times grew approximately 4-5x in Test 3.

    For other operations (Create Order, Create Order Line, Receive Pieces, and Change Instance Connection), response times increased moderately but remained within acceptable ranges as the load increased.

    Conclusion: The increase in item count per order directly impacted the performance of Open Order and Unopen Order, highlighting their sensitivity to load.

  • In Test №2, the Create New Holdings operation for Change Instance Connection triggered the reindex function. As a result, we observed that mod-search initiated reindexing, as evidenced by SQL queries N1 and N4 appearing in the TOP 5 SQL Statements table. This process placed a significant load on the database and continued for over 3 hours after the tests were completed.

Test Runs 

...

Test №

...

Date

...

Test Conditions

...

1

...

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

...

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

...

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

...

Test Results

Test №1

PO with PO Lines (1) + locations (5) + Change instance connection (Move holdings)

Transactions

...

Transactions

...

  • .
  • 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.


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_10100]272228203423726274598966
GET audit-data/acquisition/order-line/[po_line_id_10100]292727252932776570639075
GET audit-data/acquisition/piece/]pieces_10100]/status-change-history282228212723646168626960
GET audit-data/acquisition/order/[order_501000]1847165218485810047984881
GET audit-data/acquisition/order-line/[po_line_id_501000]2012223126401325321260231344222
GET audit-data/acquisition/piece/]pieces_501000]/status-change-history176020501953441175110551
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-history6050531171059696


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. 
  • Open Order: Response times increased nearly 10x in Test 3 compared to Test 1 due to the higher load (50 items per order).
  • Unopen Order: Similarly, response times grew approximately 4-5x in Test 3.

Image Removed

Image Added


  • 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

Expand
titleResource 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 mod-search initiated reindexing for Test #2all 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 were 20% for Scenario 1, 30% for Scenario 2 and 40% for Scenario 3was 12% for all Scenarios.

DB Connections

Max DB connections was 15601250.

DB load

                                                                                                                     

...

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

...