Skip to end of banner
Go to start of banner

[Eureka] Check-in-check-out Test Report (Quesnelia)

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »


Overview

The test's target is to investigate the behaviour of the Check-In/Check-Out activities during fixed load tests.

PERF-879 - Getting issue details... STATUS

Summary IN-PROGRESS

Check-In/Check-Out tests on Quesnelia release (Eureka) in QECP1 environment carried out with 8, 20, 30, 75 virtual users during 45 minutes and with 30 virtual users during longevity test (24 hours) to detect any trends in resource utilization

45 minute tests

Longevity test

Comparison with Poppy Results:

Resources

  • CPU utilization
  • Memory consumption
  • RDS CPU utilization average
  • CPU (User) usage by broker

Common notes

Recommendations

Test Runs 

The following table contains  tests configuration information

Test #

vUsersRamp-up, sec

Duration, sec 

1

8802700
2202002700
3303002700
4757502700
53030086400

Results

Errors:

  • Error messages: POST_circulation/check-out-by-barcode (Submit_barcode_checkout)_POST_422. 422/Unprocessable Entity. Happen expectedly if instance was checked out already. Error rate - 0.06% which is acceptable.

Response time

The table contains results of Check-in, Check-out tests in Quesnelia release (Eureka). 

45 minute tests


8 vUsers  20 vUsers  30 vUsers  75 vUsers  
Requests

Response Times (ms)

 Response Times (ms) Response Times (ms) Response Times (ms)
Label

#Samples

Average

95th pct

#Samples

Average

95th pct

#Samples

Average

95th pct

#Samples

Average

95th pct

Check-Out Controller











Check-In Controller











POST_circulation/check-out-by-barcode (Submit_barcode_checkout)











POST_circulation/check-in-by-barcode (Submit_barcode_checkin)











GET_circulation/loans (Submit_barcode_checkout)











Longevity test (with absent dcb-system-user)

 30 vUsers Longevity 


RequestsSamples, Response Times 

Label#Samples95th pctAverage
Check-Out Controller


Check-In Controller


POST_circulation/check-out-by-barcode (Submit_barcode_checkout)


POST_circulation/check-in-by-barcode (Submit_barcode_checkin)


Comparisons

This table has comparison between average values of response times of Quesnelia and Quesnelia (Eureka) releases


8 vUsers   20 vUsers   30 vUsers   75 vUsers   
RequestsResponse Times   Response Times   Response Times   Response Times   

PoppyQuesnelia

PoppyQuesnelia

PoppyQuesnelia

PoppyQuesnelia

LabelAverageDelta,msDifference,%AverageDelta,msDifference,%AverageDelta,msDifference,%AverageDelta,msDifference,%
Check-Out Controller















Check-In Controller















Comparison of Longevity test (absent dcb-system-user in Quesnelia)

30 vUsers Longevity  
Response Times 

PoppyQuesnelia

AverageAverageDelta,msDifference,%









API requests where response times >= 100 ms

API

30 vUsers  Poppy

Average, ms

30 vUsers  Quesnelia

Average, ms

POST checkout-by-barcode

POST checkin-by-barcode 

GET circulation/loans

Resources Utilization

CPU Utilization

45 minute and longevity tests used CPU in correspondence with number of vUsers but there are some modules that spiked during 75 vUsers test -  mod-users-b - 132%, mod-authtoken-b - 98%, nginx-okapi - 84%.
45 minute tests

 CPU by modules

Longevity test (with absent dcb-system-user)


Memory Consumption

45 minute and longevity tests didn't reveal some problems with memory usage by modules. So no memory leaks detected. Modules that consumed max memory - mod-search - 94%, mod-oa - 78%, mod-inventory - 72%, mod-dcb - 71%

 Memory usage by modules

45 minute tests


Longevity test


RDS CPU Utilization

RDS CPU utilized:

8 vUsers - 13%, 20 vUsers - 22%, 30 vUsers - 30%, 75 vUsers - 50% During longevity test CPU grew from 30% to 45%. So it has growing trend during longevity test.

45 minute tests


Longevity test


RDS Database Connections

For both 45 minute and longevity tests RDS used max 615-630 connections. Without test it was 550 connections.

45 minute tests


Longevity test


CPU (User) usage by broker

Common CPU utilization by broker during all tests was 15% with equal distribution between brokers

45 minute tests


Longevity test


Database load




75 vUsers


 Resources Utilization

CPU Utilization

45 minute and longevity tests used CPU in correspondence with number of vUsers but there are some modules that spiked during 75 vUsers test -  mod-dcb-b - 407% with 128 CPU, mod-authtoken-b - 120%, nginx-okapi - 102%.
Additional test was carried out with changed configuration for mod-dcb-b (raised from 128 to 256). It helped to decrease CPU utilization for mod-dcb-b twice from 407% to 202% and nginx-okapi from 102% to 70% which helped to decrease response times more than 20% if to compare results with 128 CPU and 256 CPU.

45 minute tests

 CPU utilization by modules
Service NameCPU 8 vUsersCPU 20 vUsersCPU 30 vUsersCPU 75 vUsers, 128CPU 30 vUsers LongevityCPU 75 vUsers, 256
mod-users-b29.3165.1189.61206.6396.57199.92
mod-dcb-b21.5346.2569.61407.79155.82201.69
okapi-b16.5238.8555.6690.656.7793
mod-inventory-b14.2818.1717.9715.1415.5815.77
mod-authtoken-b12.0820.8132.34120.6230.98115.95
mod-configuration-b10.7321.9833.9571.3330.0270.5
mod-pubsub-b9.1711.6713.6118.0912.3926.5
mod-feesfines-b8.2617.123.8854.7928.8754.37
mod-quick-marc-b7.27.637.578.197.937.88
pub-okapi3.919.4513.9933.4412.4727.68
mod-inventory-storage-b3.447.6511.9913.2410.6712.16
nginx-okapi2.566.359.35102.627.6969.58
mod-patron-b2.312.522.522.32.282.44
mod-oa-b2.282.172.672.753.173.52
mod-di-converter-storage-b2.22.192.292.392.121.97
mod-source-record-manager-b1.931.91.871.881.811.95
mod-data-import-b1.71.021.020.961.571.59
mod-source-record-storage-b1.681.721.731.771.761.83
mod-circulation-storage-b1.462.593.647.433.537.06
mod-circulation-b1.463.544.5810.255.6211.21
mod-search-b1.212.662.343.282.943.94
edge-patron-b0.920.9611.060.950.97
mod-patron-blocks-b0.751.381.82.742.382.97
mod-users-bl-b0.510.540.530.50.580.66
mod-entities-links-b0.350.360.440.420.40.39
pub-edge0.140.060.10.080.070.11


45 minute test with 75 vUsers (revision with 256 CPU for mod-dcb-b)


Longevity test


Memory Consumption

45 minute and longevity tests didn't reveal some problems with memory usage by modules. So no memory leaks detected.

 Memory usage by modules
Service NameMemory 75 vUsersMemory 30 vUsers Longevity
mod-oa-b8179.24
mod-dcb-b68.6369.16
mod-users-b63.6562.98
mod-search-b55.3440.83
mod-pubsub-b54.7961.98
okapi-b48.9460.38
mod-inventory-b47.4950.79
mod-source-record-manager-b45.0645.76
mod-quick-marc-b43.5129.92
mod-di-converter-storage-b35.0229.58
mod-feesfines-b34.1834.12
mod-source-record-storage-b33.7631.37
mod-inventory-storage-b33.1240.06
mod-entities-links-b32.325.08
mod-configuration-b32.0730.21
mod-data-import-b31.3139.73
mod-patron-blocks-b31.1330.92
mod-users-bl-b28.9525.82
mod-circulation-b27.4126.71
mod-patron-b26.6225.17
mod-circulation-storage-b26.4328.83
mod-authtoken-b21.8422.1
edge-patron-b18.318.14
nginx-okapi4.854.8
pub-okapi4.694.69
pub-edge4.584.63

45 minute tests


Longevity test


RDS CPU Utilization

45 minute tests


Longevity test


RDS Database Connections

45 minute tests


Longevity test


CPU (User) usage by broker

45 minute tests


Longevity test


Database load




Appendix

Infrastructure

PTF -environment qecp1
  • 11 m6i.2xlarge EC2 instances located in US East (N. Virginia)us-east-1 
  • 1 instance of db.r6.xlarge database instance: Writer instance
  • MSK tenant [ kafka configurations]
    • 4 kafka.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

DB table records size:

  • fs09000000
    • instances -            24493326
    • items -                  25662862
    • holding records - 24459683

Modules

 Check-In / Check-Out related modules

 All modules


Methodology/Approach

  • Run data preparation script before each CI/CO test
  • Update .jmx file script for Quesnelia release
  • Create  artefact and upload to carrier-io
  • Use Jenkins job to change parameters and run tests
  • Test CI/CO with 8, 20, 30, 75 concurrent users for 45 minutes each. 
  • Test CI/CO with 30 users for 24 hours to detect any trends in memory. 




  • No labels