Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

Overview

  1. In this workflow, we perform a load test on mod-search for the Quesnelia release.
  2. Run these tests in both Quesnelia (qcp1) for baseline numbers and Eureka Quesnelia (qep1) environments and compare results 
  3. Run test with 1, 20 virtual users on non-Eureka and Eureka environments. 
  4. Jira Legacy
    serverSystem Jira
    serverId01505d01-b853-3c2e-90f1-ee9b165564fc
    keyPERF-993

We tested with 1, 20 virtual users on non-Eureka and Eureka environments. 

Summary

  • For a single user, performance is better in the Eureka environment. However, when scaled to 20 users, there is a performance degradation of approximately 7.8%

  • Very high load for the OpenSearch cluster with more than 52 search operations per second. ERROR: "Too Many Requests" observed during the test with 20 users - non-Eureka. 
  • Service CPU utilization was up to 6% for mod-search and 5% for mod-inventory-storage, for all other services CPU did not exceed 4%.

  • Memory utilization was stable and no memory leaks or OOM issues were observed.

  • RDS CPU utilization was about up to 6%.

  • Open search CPU utilization was up to 100% with 20 user tests.

...

Errors during 20 users - non-Eureka test are due to a very high load for the OpenSearch cluster. For this test we have a throughput of about 55 ops/s and the maximal Elastic Search throughput is 52 search operations (https://repost.aws/knowledge-center/opensearch-resolve-429-error) according to our cluster configurations.

  • Use the following formula to calculate maximum active threads for search requests:int ((# of available_processors * 3) / 2) + 1.
  • For an r6g.2xlarge.search node, you can perform a maximum of 13 search operations:
    (8 VCPUs * 3) / 2 + 1 = 13 operations
  • For an OpenSearch Service cluster with four nodes, you can perform a maximum of 52 search operations:
    4 nodes * 13 = 52 operations

...

transactionNumber Of SamplesAverageMedianpct90pct95pct99MinMax
MSF_GET /search/authorities keyword <> random sentence3682477487862114822141752400
MSF_GET /search/authorities keyword <> randomword3684462472850110824231662848
MSF_GET /search/authorities keyword = *random sentence*3682154515552153254843329414350
MSF_GET /search/authorities keyword = random sentence36822452526539932623192635
MSF_GET /search/authorities keyword = randomword36842342366089733428163451
MSF_GET /search/authorities keyword == random sentence36832252335918851783201792
MSF_GET /search/authorities keyword == randomword36832442526259653221163239
MSF_GET /search/authorities keyword all *randomword*3683119112061816211741185184139
MSF_GET /search/authorities keyword all random sentence36832432516319363322213341
MSF_GET /search/authorities keyword all randomword368626226666010352643172652
MSF_GET /search/authorities keyword any random sentence36832722796039022910202920
MSF_GET /search/authorities keyword any randomword36852322375929473309163332
MSF_GET /search/instances: contributors <> 2random words3679408418786107326851332702
MSF_GET /search/instances: contributors = *randomword3680441451844106429581622969
MSF_GET /search/instances: contributors = randomword*36802272345618823076143094
MSF_GET /search/instances: contributors == 2random words36792172265949022062142073
MSF_GET /search/instances: contributors all 2random words36772312396139523320143338
MSF_GET /search/instances: contributors all randomword36802322395929733142143157
MSF_GET /search/instances: contributors any 2random words36802442526229842020152030
MSF_GET /search/instances: keyword all random sentence AND languages == randomlang73542332376149013484193511
MSF_GET /search/instances: languages == (lang) AND items.status.name == ("Available" OR "In transit")735034635677210843477393501
MSF_GET /search/instances: languages == lang734934435079711143435383458
MSF_GET /search/instances: languages == lang AND items.status.name == "Available"735035336077510853426393449
MSF_GET /search/instances: subjects <> 1randomword367033825592611772866142880
MSF_GET /search/instances: subjects = (randomword OR randomword)36822472566099182879162896
MSF_GET /search/instances: subjects = *1randomword36726016101032136529392682940
MSF_GET /search/instances: subjects = 1randomword*36722352415898773489143509
MSF_GET /search/instances: subjects == 1randomword367023223859510042564152573
MSF_GET /search/instances: subjects all 1randomword36722412486358983062163082
MSF_GET /search/instances: subjects all randomword AND title all randomword36822372436209762919132935
MSF_GET /search/instances: subjects all randomword NOT title all randomword36812352425808532493162508
MSF_GET /search/instances: subjects all randomword OR title all randomword36822612706379982581262582
MSF_GET /search/instances: subjects any 2random words367025526464010312757152759
MSF_GET /search/instances: title <> 3 word sentence3670415424770108722841402295
MSF_GET /search/instances: title == 3 word sentence367023724463410732361182367
MSF_GET /search/instances: title all *1randomword36703984398857546226745122607453
MSF_GET /search/instances: title all 1randomword*36702642736789772829172839
MSF_GET /search/instances: title all 3 word sentence36702362436288913082183091
MSF_GET /search/instances: title any 3 word sentence3670653642197424835288365311
MSF_TC: mod search by auth query fs090000003682562757507399820610533221710551
MSF_TC: mod search by boolean query fs09000000368198010151870234142711074272
MSF_TC: mod search by contributors query fs090000003677199820693160375668814236898
MSF_TC: mod search by filter query fs090000003677126713102360281250261445043
MSF_TC: mod search by keyword query fs090000003672127313152334278564161426444
MSF_TC: mod search by subject query fs090000003670190018813226363759163915920
MSF_TC: mod search by title query fs090000003670578758518198911611512262111530

Resource Utilization

Memory Utilization

1 user - non-Eureka

Image Added

1 user - Eureka

Image Added

20 users - non-Eureka

Image Added

20 users - Eureka

Image Added

Service CPU Utilization

1 user - non-Eureka

Image Added

1 user - Eureka

...

Image Added

20 users

...

Instance CPU Utilization

...

- non-Eureka

...

Image Added

20 users -

...

Eureka

...

Image Added

RDS CPU Utilization

1 user - non-Eureka

Image Added

1 user - Eureka

Image Added

20 users - non-Eureka

Image Added

20 users - Eureka

Image Added

RDS Connections count

1 user - non-Eureka

Image Added

1 user - Eureka

Image Added

20 users - non-Eureka

Image Added

20 users - Eureka

Image Added

OpenSearch metrics


Additional information

...

...