IN PROGRESS
Overview
Bulk Edit - Establish a performance baseline for user status bulk updates.
- How long does it take to export 100, 1000, 2500, 10k, and 100K records?
- Use it for up to 5 concurrent users.
- Look for a memory trend and CPU usage
Infrastructure
PTF -environment
- 9 m6i.2xlarge EC2 instances located in US West (Oregon)us-west-2 AWS region (comparing to 10 m6i.2xlarge EC2 instances located in US East (N. Virginia)us-east-1 for Morning Glory release)
- 2 instances of db.r6.xlarge database instances, one reader, and one writer
- MSK ptf-kakfka-1
- 4 m5.2xlarge brokers in 2 zones
Apache Kafka version 2.8.0
EBS storage volume per broker 300 GiB
- auto.create.topics.enable=truec
- log.retention.minutes=480
- default.replication.factor=3
Modules memory and CPU parameters
# | modules | task definition | running tasks | CPU | memory | memoryReservation | maxMetaspaceSize | Xmx |
---|---|---|---|---|---|---|---|---|
mod-data-export-spring | 2 | 1 | 256 | 2048 | 1844 | 512 | 1536 (1236 in MG) | |
mod-data-export-worker | 2 | 2 | 1024 | 3072 | 2600 | 512 | 2048 (1536 in MG) | |
mod-users | 4 | 2 | 128 (258 in MG) | 1024 | 896 | 128 | 768 | |
mod-notes | 2 | 2 | 128 | 1024 | 896 | 128m | 322 (768m in MG) | |
mod-inventory | 2 | 2 | 1024 | 2880 | 2592 | 512m | 1814m | |
mod-inventory-storage | 5 | 2 | 1024 | 2208 | 1952 | 512m | 1440m | |
okapi | 2 | 3 | 1024 | 1684 | 1440 | 512m | 922m | |
mod-orders | 3 | 2 | 1024 | 2048 | 1440 | 512m | 896m | |
mod-orders-storage | 2 | 2 | 128 | 1024 | 896 | 128m | 768m | |
mod-circulation | 3 | 2 | 1024 | 1024 | 896 | 128m | 768m | |
mod-circulation-storage | 6 | 2 | 1024 | 1536 | 1440 | 512m | 896m | |
mod-agreements | 2 | 2 | 128 | 1592 | 1488 | 512m | 968m |
MG- Morning Glory release
Software Versions
- mod-data-export-worker-1.5.0-SNAPSHOT.76
- mod-data-export-spring-1.5.0-SNAPSHOT.58
- mod-agreements-5.4.0-SNAPSHOT.104
- mod-notes-4.0.0-SNAPSHOT.237
- mod-users-19.0.0-SNAPSHOT.573
- mod-inventory-19.0.0-SNAPSHOT.383
- mod-inventory-storage-25.0.0-SNAPSHOT.631
- okapi-4.14.4
Summary
Test report for Bulk Edits users-app functionality 2022-10-29.
- 10k records per user, 5 users simultaneously (50k records total) can be uploaded in about 2 min 25 seconds, edited files uploaded in up to 15 seconds, and edited in 4 min 50 seconds (about 7 min 30 total).
- The files with identifiers should be strictly determined.
- The memory of all modules during the tests for 2500 records with 5 parallel was stable. During the tests for 5000 (5 parallel) and 10 000 records (5 parallel) jobs, mod-data-export-worker memory increased by 1% at the start of the 10k test and was about 66,5% all the time. All other modules' memory usage was stable.
- CPU - 2500 records per user for 5 parallel jobs -CPU of mod-users was 199%, for all other modules did not exceed 15%. 5000 or 10k records per user for 5 parallel jobs -CPU of mod-users was 174%, and for all other modules did not exceed 23%.
- RDS CPU utilization did not exceed 36% for 5jobs 2500 records and 49% for 5jobs 5k or 10k records.
Results
Test Runs
Users App - updating user status
Record identifier files location - http://carrier-io.int.folio.ebsco.com/artifacts?q=export
5 virtual users | Nolana | Morning Glory | ||||||
"BARCODE" Records number per 1 user | Time to upload | Time of POST /bulk-edit/${jobId}/upload | Time to edit - commit changes | Total time | Time to upload | Time of POST /bulk-edit/${jobId}/upload | Time to edit - commit changes | Total time |
2500 | 40sec | 6 sec | 1 min 23 sec | 2 min 9 sec | 34-39 sec | up to 10 minutes (depending on the number of records that should not be updated) | 1 min 5 sec | 1 min 55 sec |
5000 | 1min 12 sec | 10 sec | 2 min 25 sec | 3 min 47 sec | 1 min 12 sec | 1min 50 sec | 3 min 30 sec | |
10k | 2 min 25 sec | up to 15 sec | 4 min 50 sec | 7 min 30 sec | 2min 15 sec | 2 min if all records will be updated | 3 min 58 sec | 8 min |
Memory usage
The memory of all modules during the tests for 2500 records and 5 parallel jobs was stable all the time.
During the tests for 5000 (5 parallel) and 10 000 records (5 parallel) jobs, mod-data-export-worker memory increased by 1% at the start of the 10k test and was about 66,5% all the time. All other modules' memory usage was stable.
CPU utilization
CPU - 2500 records per user for 5 parallel jobs -CPU of mod-users was 199%, for all other modules did not exceed 15%.
5000 & 10k records per user for 5 parallel jobs -CPU of mod-users was 174%, and for all other modules did not exceed 23%.
RDS CPU utilization
2500 records - RDS CPU utilization did not exceed 36%
5000 & 10k records - RDS CPU utilization did not exceed 49%