Master Script longevity test - NLA report


Overview


In the scope of PERF-527 - Getting issue details... STATUS it's needed to run tests to answer questions: 

    • Typical KPIs:
      • Service CPU
      • Service Memory
      • DB CPU
      • DB Memory
    • Response times
    • Durations of long workflows

Summary

  • The current system can accommodate an average load only without Data Import. With data import, we will have 'HTTP 500 Internal Server Error. If the issue persists, please report it to EBSCO Connect.' for several workflows in the source-storage/records/{id}/formatted requests PERF-582 - Getting issue details... STATUS , and the general response time will be longer up to 2 times for all other workflows.
  • Service CPU usage did not exceed 44 % for all modules. We can observe spikes in CPU usage of DI modules at the beginning of the Data Import jobs. CPU usage of mod-inventory-storage grows up to 31% but decreased automatically to 6% (a possible reason is garbage collection process work). Without DI spikes average CPU usage was up to 13% for all other modules.
  • Service memory utilization was stable, and no memory leaks were suspected during tests.
  • Average instance CPU utilization was up to 8.5% and spiked at the beginning of Data Import up to 15%

  • Average DB CPU usage is up to 55%. For part of the test with DI  job- 620 connections count. 395 connections - average usage during the test.

Recommendations & Jiras

Jiras

PERF-582 - Getting issue details... STATUS

Test Runs & Results

Test #

# configuration

Test durationcomments
1FYR workflow started at the beginning of the test10 hoursRes 500 ERROR during Data Import (DI) process
2FYR workflow started at the end of the test24 hours (planned - not performed yet)Will be performed after DI issues fix

 Test results from 1st test run:

Test # 1

Workflow name 

Total time it takes to complete workflow

Time-consuming requests for each workflow during DI, finished with Response body: HTTP 500 Internal Server Error. If the issue persists, please report it to EBSCO Connect.


1st hour of the test Avg + FYR1st hour of the test 95th pct + FYR2nd hour of the test Avg2nd hour of the test 95th pct 10th hour of the test Avg10th hour of the test 95th pctAvg With DI (sec) normal load95th pct with DI (sec) normal loadAvg no DI (sec) normal load95th pct no DI (sec) normal load
1CICO_Checkin1.2271.7161.1961.6611.0741.3551.2381.5061.0541.591
2CICO_Checkout1.9782.6941.9522.6351.7672.1682.1562.8291.6501.948
3IO_View invoices0.9451.2210.9321.1420.9041.0120.9071.3050.7630.913
4IO_Create invoices1.7182.1261.7692.1871.8042.0611.4331.8151.1741.370
5IO_Edit invoices2.1702.4972.1952.4422.1492.4321.9832.4221.5811.897
6IO_Delete invoices1.1191.3481.0901.2961.1411.3071.0701.1960.8040.927
7AIE_Approving Invoices1.1741.9401.2321.9461.6622.2761.7522.2111.4531.940
8VAR_View Authority records0.3100.4960.3050.4440.2780.41822.03730.6040.2890.381VAR_GET /source-storage/records/marc_id/formatted
9VTT_View MARC tag table1.4222.3921.4732.3701.0391.36941.27261.9350.9871.284VTT_GET source-storage/records/{id}/formatted *2
10VH_View holdings records1.7332.5071.6262.2961.3611.61627.32833.5791.5261.922VH_GET source-storage/records/{id}/formatted
11VB_View Bib1.1792.0111.1771.8810.8501.12922.85131.6340.8411.168VB_GET source-storage/records/{id}/formatted
12PRO_View patron records0.6361.0320.6281.0690.5590.8690.6721.1180.5660.883
13PRO_Delete patron records0.7031.1810.8441.1130.7161.0490.8921.3360.6381.070
14PRO_Update patron records1.1631.9151.0111.7031.0911.6921.3862.0971.0431.625
15PRO_Create patron records1.2101.4821.1921.4821.1891.3991.5471.9791.0981.261
16LO_View Ledger0.0480.0860.0480.0700.0770.1200.1220.4580.0500.088
17LO_Create ledger0.6350.7990.6310.7440.7100.8480.6840.8400.6160.761
18LO_Edit ledger0.0500.0870.0500.0810.0790.1280.0760.0940.0540.085
19LO_Delete a ledger0.0460.0770.0470.0730.0800.1150.0800.1290.0460.080
20DE_Export bib "Default instances export job profile"5 sec-4 sec-5 sec-11 sec  (5000 records)-5 sec  (5000 records)-
21DE_Export holdings "Default holdings export job profile"44 sec-28 sec -27 sec-3 min 16 sec  (5000 records)-26 sec  (5000 records)-
22DE_Export authority records "Default authority export job profile"4 sec-3 sec-3 sec-8 sec (5000 records)-3 sec  (5000 records)-
23DI "DISC HRID match"------1sec (1 record)---
24DI "DS LA edeposit records update"------17 min 5 sec---job duration 17 min
25DI "DISC New edeposit records"------4 sec---
26DI "DISC New NON edeposit records"------4 sec (5 records)---
27IRO_View item records1.4432.2301.7582.3461.3801.78724.77132.3271.2891.649
28IRO_update item records1.3601.9711.3321.8191.0201.18617.22633.9500.9981.250
29IRO_delete item records1.4432.2301.5192.3461.0331.37623.68631.4970.9271.099
30MPS_Monitoring Pick Slips and Requests GET /circulation/requests0.4760.7560.4760.7560.3360.4760.4340.5270.3590.480
31MPS_Monitoring Pick Slips and Requests GET /circulation/pick-slips/0.1810.4840.2080.5580.1670.4170.1060.3120.1120.256
32MPS_Monitoring Pick Slips and Requests0.0500.0500.0500.0500.0300.0300.2970.2970.3030.303
33ULR_Users loan renewal1.6221.9541.6962.2781.5141.7651.8992.3951.4671.661
34ILR_Item-level requests0.7681.5180.7751.2870.7000.9560.8351.2670.6690.973
35VRO_View vendor records0.7031.2620.6571.2170.7921.2861.3152.3050.7131.165
36VRO_Edit vendor records5.9816.5756.0786.2676.0956.3267.4299.9805.1996.190
37VRO_Create vendor records1.1351.3371.1271.3871.1151.3071.4361.8291.0641.200
38VRO_Delete vendor records0.4590.6700.4630.6700.4260.5980.6350.8850.4120.522
39POO_Create purchase orders1.7681.9701.7811.9321.7462.0091.9742.3931.6251.733
40POO_View purchase orders1.0361.4491.1971.4471.2481.5011.5021.6031.2051.435
41POO_Edit purchase orders1.9042.9172.5552.8332.2132.9413.1183.9142.0762.984
42POO_Delete purchase orders1.1401.7601.4771.7941.5541.7872.0363.3871.4321.830
43RIH_Retrieving instances and holdings0.0470.0900.0450.0880.0360.07019.73730.0840.0350.073RIH_GET source-storage/source-records
44ETT_Edit MARC tag table4.0785.1714.0755.4093.1213.613118.391128.5083.4244.257ETT_GET /source-storage/records/instance_id/formatted
ETT_GET /records-editor/records
45FYR_Fiscal close - end of FY rollover
-----10 min 30 s-11 min-
46

VIR_Blacklight: View an inventory record JMeter script

0.8991.2240.8941.2070.8191.0421.0301.6020.8211.042
47BLS_Blacklight: Create a Request JMeter script1.3351.6961.2691.6961.1891.5011.3361.6051.1221.404
48

PRV_Blacklight: Create a View Patron record JMeter script

0.0770.1260.0770.1250.0710.1140.1060.1360.0730.110
49VIH_View instance holdings details3.0934.1752.9563.7921.5341.76121.24131.6981.4561.572VIH_GET /source-storage/records/instanceId/formatted

*Note that workflows that have response times or durations in red are the ones that are at least 2 times higher than when running without Data Import jobs.

Throughput graphs

Test#1

Memory Utilization

Memory utilization of the most memory-consuming modules :

  • mod-inventory - 98%
  • mod-orders - 73%
  • mod-calendar - 71%
  • mod-notes - 68%
  • mod-tags - 66%
  • mod-data-export-worker - 64%
  • mod-data-export - 62%
  • mod-invoice - 61%
  • mod-finance-storage- 51%
  • others - usage less than 50%

This graph represents memory usage and shows that no memory leak is suspected for all of the modules.


Service CPU Utilization 

CPU usage did not exceed 44 % for all modules. We can observe spikes in CPU usage of DI modules at the beginning of the Data Import jobs. CPU usage of mod-inventory-storage grows up to 31% but decreased automatically to 6% (a possible reason is garbage collection process work). Without DI spikes average CPU usage was up to 13% for all other modules.

Test# 1 DI duration - 17 min.


Most CPU-consuming modules: 

  • mod-inventory-storage  - from 6% to 44%
  • mod-authtoken -13%
  • mod-inventory - 11%
  • mod-configuration -11%
  • mod-quick-marc - 11%
  • mod-finance-storage - 10%
  • others - usage less than 10%


Instance CPU Utilization

Average instance CPU utilization was up to 8.5% and spiked at the beginning of Data Import up to 15%


RDS CPU Utilization 

Test# 1

Approximately DB CPU usage is up to 55%


RDS Database Connections


Test# 1  for part of the test with DI  job- 620 connections count. 395 connections - average usage during the test.

Appendix

Infrastructure

Records count :

  • mod_source_record_storage.marc_records_lb = 7300919
  • mod_source_record_storage.raw_records_lb = 7300919
  • mod_source_record_storage.records_lb = 7300919
  • mod_source_record_storage.marc_indexers = 245032159 (all records)
  • mod_source_record_storage.marc_indexers with field_no 010 = 1008129
  • mod_source_record_storage.marc_indexers with field_no 035 = 8968420
  • mod_inventory_storage.authority = 852215
  • mod_inventory_storage.holdings_record = 6091403
  • mod_inventory_storage.instance = 5581816
  • mod_inventory_storage.item = 5705915

PTF -environment ncp3 

  • m6i.2xlarge EC2 instances located in US East (N. Virginia)us-east-1
  • 2 database  instances, one reader, and one writer

    NameAPI NameMemory GIBvCPUsmax_connections
    R6G Extra Largedb.r6g.xlarge32 GiB4 vCPUs2731
  • 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-storage26.0.0121024220819523841440
mod-inventory20.0.4121024288025925121814
mod-tags2.0.1121281024896128768
mod-gobi2.6.0121281024896128700
mod-remote-storage2.0.2121024492044725123960
mod-invoice-storage5.6.0121281024896128700
edge-sip23.0.0121281024896128768
mod-users-bl7.5.01251214401152128922
edge-rtac2.6.0121281024896128768
mod-feesfines18.2.1121281024896128768
mod-rtac3.5.0121281024896128768
mod-erm-usage-harvester4.3.0121281024896128768
mod-search2.0.1124002592248010241440
mod-service-interaction2.2.212256204818445121290
edge-ncip1.8.1121281024896128768
mod-authtoken2.13.01251214401152128922
mod-permissions6.3.122512168415445121024
mod-circulation-storage16.0.012102415361440512896
mod-ncip1.13.1121281024896128768
mod-pubsub2.9.112102415361440512922
edge-orders2.8.112102415361440512922
mod-circulation23.5.412153628802592128700
edge-caiasoft2.0.0121281024896--
mod-data-export4.7.11110241024896128768
mod-organizations-storage4.5.1121281024896128700
mod-source-record-storage5.6.5122048560050005123600
mod-copycat1.4.0128961024896128768
mod-bulk-operations1.0.5121024307226005121536
mod-quick-marc3.0.011128228821765121664
mod-audit2.7.01210241024896128768
mod-oai-pmh3.11.3121024224820005121440
edge-connexion1.0.6121281024896128768
mod-kb-ebsco-java3.13.0121281024896128768
mod-patron5.5.2121281024896128768
mod-email1.15.3121281024896128768
mod-password-validator3.0.01212814401298512768
mod-login7.9.012102414401298512768
mod-data-export-worker3.0.12121024307226005122048
mod-agreements5.5.212128309625805122048
edge-oai-pmh2.6.1121024151213605121440
mod-eusage-reports1.3.0121281024896128768
mod-orders-storage13.5.0125121024896128700
mod-notify3.0.0121281024896128768
mod-source-record-manager3.6.2122048560050005123600
mod-di-converter-storage2.0.2221281024896128768
mod-template-engine1.18.0121281024896128768
mod-user-import3.7.2121281024896128768
mod-finance-storage8.4.1121281024896128700
mod-users19.1.1121281024896128768
mod-sender1.10.0121281024896128768
mod-graphql1.11.0121281024896128768
mod-licenses4.3.112128248023125121792
mod-invoice-b5.6.21251214401152128922
mod-event-config2.5.0121281024896128768
mod-calendar2.4.2121281024896128768
mod-erm-usage4.5.2121281024896128768
mod-patron-blocks1.8.01210241024896128768
mod-data-import2.7.111256204818445121292
mod-ebsconet2.0.01212812481024256700
edge-dematic2.0.0121281024896--
mod-task-list5.0.1111281024896128768
mod-courses1.4.7121281024896128768
mod-inventory-update3.0.1121281024896128768
mod-login-saml2.6.1121281024896128768
mod-orders12.6.612102420481440 (Recommended to change to 1544)5121024
mod-configuration5.9.1121281024896128768
mod-organizations1.7.0121281024896128700
mod-notes5.0.1121281024896128322
mod-finance4.7.1121281024896128700
mod-data-export-spring2.0.111256204818442561292
edge-patron4.11.0122561024896128768
okapi5.0.123102416841440512922
nginx-okapi2022.03.02121281024896--
pub-okapi2022.03.02121281024896-768

Methodology/Approach

To test Baseline for normal NLA library usage the JMeter scripts were used.

Tested with different DI delays:

  • From test start
  • 1 min delay
  • 20 min delay
  • without DI

Data was gathered from 2 periods with and without data import.


  • DI - data import
  • FYR - Fiscal close - end of FY rollover