Check-In / Check-Out - NLA report
IN PROGRESS
Overview
In the scope of - PERF-601Getting issue details... STATUS
Perform a fixed load test on the CICO functionality with the same average and high loads that are used for NLA testing to get baseline numbers.
Summary
- Response time for CICO separate workflow is higher than for high load and normal load.
- Average CPU usage of mod-inventory - up to 11% for all other modules did not exceed 5 %. Instance CPU Utilization did not exceed 7,5%.
- Service memory utilization was stable, and no memory leaks were suspected during tests.
DB CPU usage was at the same level as without load- about 7,2%. 342 connections count without load was increased to 360 connections during CICO.
Test Runs & Results
Test # | # configuration | Test duration | comments |
---|---|---|---|
1,2,3 | Throughput for CI/CO operations is 1 per minute (1 CI and 1 CO) or about 60 per hour | 1 hour | NO errors |
Test results from 1st test run (1st, 2nd and 3rd test run results are similar):
Test # | Workflow name | Total time it takes to complete workflow | Avg Latency for baseline test | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Avg (sec) Baseline | 95th pct (sec) Baseline | Avg With DI (sec) normal load * | 95th pct with DI (sec) normal load | Avg (sec) high load with FYR | 95th pct (sec) high load with FYR | Avg (sec) high load | 95th pct (sec) high load ** | Avg (sec) normal load | 95th pct (sec) normal load | |||
1 | Checkin | 1.233 | 1.570 | 1.238 | 1.506 | 1.218 | 1.488 | 1.093 | 1.362 | 1.054 | 1.591 | 1.155 |
2 | Checkout | 2.237 | 2.787 | 2.156 | 2.829 | 2.272 | 2.780 | 1.830 | 2.187 | 1.650 | 1.948 | 2.125 |
Throughput graphs
For Test#1, Test#2 and Test#3 graphs are almost the same.
Memory Utilization
This graph represents memory usage of test runs and shows that no memory leak is suspected for all of the modules.
Service CPU Utilization
Average CPU usage of mod-inventory - up to 11% for all other modules did not exceed 5 %.
Detailed CICO modules
Instance CPU Utilization
Instance CPU Utilization did not exceed 7,5%.
RDS CPU Utilization
DB CPU usage was at the same level as without load- about 7,2%.
RDS Database Connections
Test# 1 - Test# 3 - 342 connections count without load was increased to 360 connections during CICO.
Appendix
Infrastructure
Load generator
Instance Type: t3.2xlarge (Ram memory in GB available per load generator - 30 GB needed for the test with high load)
PTF -environment ncp3
- 9 m6i.2xlarge EC2 instances located in US East (N. Virginia)us-east-1
2 database instances, one reader, and one writer
Name API Name Memory GIB vCPUs max_connections R6G Extra Large db.r6g.xlarge 32 GiB 4 vCPUs 2731 - MSK ptf-kakfa-3
- 4 m5.2xlarge brokers in 2 zones
Apache Kafka version 2.8.0
EBS storage volume per broker 300 GiB
- auto.create.topics.enable=true
- log.retention.minutes=480
- default.replication.factor=3
- Kafka topics partitioning: - 2 partitions for DI topics
Modules memory and CPU parameters
Modules | Version | Task Definition | Running Tasks | CPU | Memory | MemoryReservation | MaxMetaspaceSize | Xmx |
---|---|---|---|---|---|---|---|---|
mod-inventory-storage | 26.0.0 | 1 | 2 | 1024 | 2208 | 1952 | 384 | 1440 |
mod-inventory | 20.0.4 | 1 | 2 | 1024 | 2880 | 2592 | 512 | 1814 |
mod-tags | 2.0.1 | 1 | 2 | 128 | 1024 | 896 | 128 | 768 |
mod-gobi | 2.6.0 | 1 | 2 | 128 | 1024 | 896 | 128 | 700 |
mod-remote-storage | 2.0.2 | 1 | 2 | 1024 | 4920 | 4472 | 512 | 3960 |
mod-invoice-storage | 5.6.0 | 1 | 2 | 128 | 1024 | 896 | 128 | 700 |
edge-sip2 | 3.0.0 | 1 | 2 | 128 | 1024 | 896 | 128 | 768 |
mod-users-bl | 7.5.0 | 1 | 2 | 512 | 1440 | 1152 | 128 | 922 |
edge-rtac | 2.6.0 | 1 | 2 | 128 | 1024 | 896 | 128 | 768 |
mod-feesfines | 18.2.1 | 1 | 2 | 128 | 1024 | 896 | 128 | 768 |
mod-rtac | 3.5.0 | 1 | 2 | 128 | 1024 | 896 | 128 | 768 |
mod-erm-usage-harvester | 4.3.0 | 1 | 2 | 128 | 1024 | 896 | 128 | 768 |
mod-search | 2.0.1 | 1 | 2 | 400 | 2592 | 2480 | 1024 | 1440 |
mod-service-interaction | 2.2.2 | 1 | 2 | 256 | 2048 | 1844 | 512 | 1290 |
edge-ncip | 1.8.1 | 1 | 2 | 128 | 1024 | 896 | 128 | 768 |
mod-authtoken | 2.13.0 | 1 | 2 | 512 | 1440 | 1152 | 128 | 922 |
mod-permissions | 6.3.1 | 2 | 2 | 512 | 1684 | 1544 | 512 | 1024 |
mod-circulation-storage | 16.0.0 | 1 | 2 | 1024 | 1536 | 1440 | 512 | 896 |
mod-ncip | 1.13.1 | 1 | 2 | 128 | 1024 | 896 | 128 | 768 |
mod-pubsub | 2.9.1 | 1 | 2 | 1024 | 1536 | 1440 | 512 | 922 |
edge-orders | 2.8.1 | 1 | 2 | 1024 | 1536 | 1440 | 512 | 922 |
mod-circulation | 23.5.4 | 1 | 2 | 1536 | 2880 | 2592 | 128 | 700 |
edge-caiasoft | 2.0.0 | 1 | 2 | 128 | 1024 | 896 | - | - |
mod-data-export | 4.7.1 | 1 | 1 | 1024 | 1024 | 896 | 128 | 768 |
mod-organizations-storage | 4.5.1 | 1 | 2 | 128 | 1024 | 896 | 128 | 700 |
mod-source-record-storage | 5.6.5 | 1 | 2 | 2048 | 5600 | 5000 | 512 | 3600 |
mod-copycat | 1.4.0 | 1 | 2 | 896 | 1024 | 896 | 128 | 768 |
mod-bulk-operations | 1.0.5 | 1 | 2 | 1024 | 3072 | 2600 | 512 | 1536 |
mod-quick-marc | 3.0.0 | 1 | 1 | 128 | 2288 | 2176 | 512 | 1664 |
mod-audit | 2.7.0 | 1 | 2 | 1024 | 1024 | 896 | 128 | 768 |
mod-oai-pmh | 3.11.3 | 1 | 2 | 1024 | 2248 | 2000 | 512 | 1440 |
edge-connexion | 1.0.6 | 1 | 2 | 128 | 1024 | 896 | 128 | 768 |
mod-kb-ebsco-java | 3.13.0 | 1 | 2 | 128 | 1024 | 896 | 128 | 768 |
mod-patron | 5.5.2 | 1 | 2 | 128 | 1024 | 896 | 128 | 768 |
mod-email | 1.15.3 | 1 | 2 | 128 | 1024 | 896 | 128 | 768 |
mod-password-validator | 3.0.0 | 1 | 2 | 128 | 1440 | 1298 | 512 | 768 |
mod-login | 7.9.0 | 1 | 2 | 1024 | 1440 | 1298 | 512 | 768 |
mod-data-export-worker | 3.0.12 | 1 | 2 | 1024 | 3072 | 2600 | 512 | 2048 |
mod-agreements | 5.5.2 | 1 | 2 | 128 | 3096 | 2580 | 512 | 2048 |
edge-oai-pmh | 2.6.1 | 1 | 2 | 1024 | 1512 | 1360 | 512 | 1440 |
mod-eusage-reports | 1.3.0 | 1 | 2 | 128 | 1024 | 896 | 128 | 768 |
mod-orders-storage | 13.5.0 | 1 | 2 | 512 | 1024 | 896 | 128 | 700 |
mod-notify | 3.0.0 | 1 | 2 | 128 | 1024 | 896 | 128 | 768 |
mod-source-record-manager | 3.6.2 | 1 | 2 | 2048 | 5600 | 5000 | 512 | 3600 |
mod-di-converter-storage | 2.0.2 | 2 | 2 | 128 | 1024 | 896 | 128 | 768 |
mod-template-engine | 1.18.0 | 1 | 2 | 128 | 1024 | 896 | 128 | 768 |
mod-user-import | 3.7.2 | 1 | 2 | 128 | 1024 | 896 | 128 | 768 |
mod-finance-storage | 8.4.1 | 1 | 2 | 128 | 1024 | 896 | 128 | 700 |
mod-users | 19.1.1 | 1 | 2 | 128 | 1024 | 896 | 128 | 768 |
mod-sender | 1.10.0 | 1 | 2 | 128 | 1024 | 896 | 128 | 768 |
mod-graphql | 1.11.0 | 1 | 2 | 128 | 1024 | 896 | 128 | 768 |
mod-licenses | 4.3.1 | 1 | 2 | 128 | 2480 | 2312 | 512 | 1792 |
mod-invoice-b | 5.6.2 | 1 | 2 | 512 | 1440 | 1152 | 128 | 922 |
mod-event-config | 2.5.0 | 1 | 2 | 128 | 1024 | 896 | 128 | 768 |
mod-calendar | 2.4.2 | 1 | 2 | 128 | 1024 | 896 | 128 | 768 |
mod-erm-usage | 4.5.2 | 1 | 2 | 128 | 1024 | 896 | 128 | 768 |
mod-patron-blocks | 1.8.0 | 1 | 2 | 1024 | 1024 | 896 | 128 | 768 |
mod-data-import | 2.7.1 | 1 | 1 | 256 | 2048 | 1844 | 512 | 1292 |
mod-ebsconet | 2.0.0 | 1 | 2 | 128 | 1248 | 1024 | 256 | 700 |
edge-dematic | 2.0.0 | 1 | 2 | 128 | 1024 | 896 | - | - |
mod-task-list | 5.0.1 | 1 | 1 | 128 | 1024 | 896 | 128 | 768 |
mod-courses | 1.4.7 | 1 | 2 | 128 | 1024 | 896 | 128 | 768 |
mod-inventory-update | 3.0.1 | 1 | 2 | 128 | 1024 | 896 | 128 | 768 |
mod-login-saml | 2.6.1 | 1 | 2 | 128 | 1024 | 896 | 128 | 768 |
mod-orders | 12.6.6 | 1 | 2 | 1024 | 2048 | 1440 (Recommended to change to 1544) | 512 | 1024 |
mod-configuration | 5.9.1 | 1 | 2 | 128 | 1024 | 896 | 128 | 768 |
mod-organizations | 1.7.0 | 1 | 2 | 128 | 1024 | 896 | 128 | 700 |
mod-notes | 5.0.1 | 1 | 2 | 128 | 1024 | 896 | 128 | 322 |
mod-finance | 4.7.1 | 1 | 2 | 128 | 1024 | 896 | 128 | 700 |
mod-data-export-spring | 2.0.1 | 1 | 1 | 256 | 2048 | 1844 | 256 | 1292 |
edge-patron | 4.11.0 | 1 | 2 | 256 | 1024 | 896 | 128 | 768 |
okapi | 5.0.1 | 2 | 3 | 1024 | 1684 | 1440 | 512 | 922 |
nginx-okapi | 2022.03.02 | 1 | 2 | 128 | 1024 | 896 | - | - |
pub-okapi | 2022.03.02 | 1 | 2 | 128 | 1024 | 896 | - | 768 |
Methodology/Approach
To test Baseline for stress testing of NLA library usage the JMeter scripts were used.
Tested without DI.
Data was gathered from 2 periods with and without FYR.
- DI - data import
- FYR - Fiscal close - end of FY rollover
Additional Screenshots of graphs or charts
Previous test results:
Master Script normal load test - NLA report
Master Script high load test - NLA report (without Data Import)
Grafana dashboard: