PERF-234 Investigate impact of all language analyzers enabled on search
Purpose
Establish a baseline for the most common searches that the users might conduct. The performance baseline includes search by: keyword, title, subject, contributor, queries with boolean operations and filters.
All search operations performed for 1, 10, 20, 50, 100 simultaneous users.
Approach
Index bugfest-kiwi dataset at https://falcon-perf-okapi.ci.folio.org and execute list of queries to estimate current performance of mod-search application with all available languages:
{ "languageConfigs": [ { "code": "eng" }, { "code": "heb" }, { "code": "ara" }, { "code": "chi" }, { "code": "spa" }, { "code": "ger" }, { "code": "fre" }, { "code": "ita" }, { "code": "jpn" }, { "code": "kor" }, { "code": "rus" }, { "code": "swe" } ], "totalRecords": 12 }
Performance test configuration
Property | Value |
---|---|
Environment | |
mod-search | 2 nodes with CPU limit = 256m and memoryLimit = 536MB |
okapi | 3 nodes with CPU limit = 256m and memoryLimit = 536MB |
mod-authtoken | 2 nodes with CPU limit = 128m and memoryLimit = 360MB |
mod-login | 2 nodes with CPU limit = 128m and memoryLimit = 536MB |
mod-permissions | 2 nodes with CPU limit = 128m and memoryLimit = 536MB |
ElasticSearch | AWS based Number of nodes: 4 Resources: r6g.large, 16 GiB of Memory, 2 vCPUs, EBS only, 64-bit Arm platform Properties: timeout=30 |
Search queries | Keyword searchkeyword = "covid*" Title search title all "Water in Africa" Subjects searchsubjects = "Washington*" Contributors searchcontributors == "Jon Brown" Boolean searchsubjects all "washington" AND title all "international travel" Filter searchlanguages == "eng" |
Count of resources | ~8,2 millions (bugfest-iris dataset) |
Index size | 26.6 Gb per replica (53.2 total) |
Performance Test duration | 180 (3 min) |
V_USERS | 1/10/20/50/100 |
RAMP_UP | 5 sec |
HOSTNAME | falcon-perf-okapi.ci.folio.org |
Errors
All error in test results means that mod-search received response from ElasticSearch:
"Exception happened: Error raised when there was an exception while talking to ES. ConnectionError: Read timed out. (read timeout=30))"
After it, mod-search proxying error to the client in response. It means that the search performed longer than the timeout set up for ES.