EDIFACT Order Export workflow report 2 [Morning Glory]
Overview
Per PERF-267, test EDIFACT PERF-270 exports of 10K records to understand the workflow behavior before and when the mod-data-export-worker task crashes, if it crashes at all.
Infrastructure
- 10 m6i.2xlarge EC2 instances (changed. In Lotus it was m5.xlarge)
- 2 instances of db.r6.xlarge database instances, one reader and one writer
- MSK. (topics being used [cluster].[tenant].data-export.job.command , [cluster].[tenant].data-export.job.update)
- 4 m5.2xlarge brokers in 2 zones
- auto.create-topics.enable = true
- log.retention.minutes=120
- 2 partitions per DI topics
Software Versions
- mod-data-export-worker v 1.4.4
- mod-data-export-spring v 1.4.4
- mod-agreements:5.2.1
- mod-notes:3.1.0
- mod-orders-storage:13.3.2
- mod-orders:12.4.3
Results
Summary
System can handle from 6 concurrent jobs. However there is different succession rate each time. For instance:
- 10 concurrent jobs 1000 order per organisation - 6 successfully ended;
- 6 concurrent jobs 1000 order per organisation - 4 successfully ended;
- 6 concurrent jobs 1000 order per organisation - 5 successfully ended;
- 4 concurrent jobs 1000 order per organisation - 2 successfully ended;
- 4 concurrent jobs 500 order per organisation - 0 successfully ended.
Notable observations:
Jobs are failing due to
ERRORS analysis
All jobs failed with issue related to FTP server. Unfortunately we can't access there to check what exactly went wrong and check if it configurable or not:
09:45:41 [] [] [] [] ERROR AbstractStep Encountered an error executing step saveToFTPStep in job EDIFACT_ORDERS_EXPORTjava.lang.reflect.UndeclaredThrowableException: null
08:46:32 [] [] [] [] ERROR ectStorageRepository Error uploading filejava.io.IOException: Connection is not openat org.apache.commons.net.ftp.FTP.sendCommand(FTP.java:514) ~[commons-net-3.6.jar!/:3.6]
Resources usage
Resource usage showed for 4 concurrent jobs 1000 orders per organisation
Here you can see CPU usage of related modules for EDIFACT export. Highest usage was on mod-orders-storage (85%)
Memory usage is stable, however when exporting 10 organisation with 1000 orders each memory consumption on mod-data-export-worker growing 2-3% per each run.
whole process consumes only 8% max of instance CPU.
DB CPU reached 35% max.