-
Notifications
You must be signed in to change notification settings - Fork 1.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Discuss] Performance benchmarking improvements for Opensearch #3983
Comments
👍 |
It would be great to have the details of the benchmark runs to be exposeable (publicly) and comparable so to spot obvious regressions easily (inspired by [1] and [2]). [1] https://elasticsearch-benchmarks.elastic.co/ |
Agreed. Not sure if opensearch-benchmark team already has something like this on their roadmap. |
Another aspect for focus can be ease of doing performance tests for developers. Current scripts for perf requires provide the bundle manifest which contains the link to the artifacts. Support for perf tests using locally built artifacts(OS and plugins) would be super helpful. |
@bbarani Can you comment? Thanks! |
I think testing with more of the existing workloads as suggested in point 2 of the original post would yield the most useful information and require very little effort to implement. We just might need to scale our existing infrastructure to handle more concurrent tests. |
I wanted to summarize some details around the current performance testing framework and also identify the gaps that currently exist. This might re-iterate on the points mentioned as a part of the issue but will help layout the picture for the framework in place. Current state of the worldWe have nightly performance tests that -
Gaps and issuesApart from the issues mentioned above, there are a couple of more gaps -
|
@kotwanikunal thanks for the summary, I would include into "Gaps and issues":
|
Agreed. Let's follow up with
Correct. There are already APIs for comparison that can be leveraged. |
@kotwanikunal I think we can start with these low hanging fruits first to improve the current state:
Post these are done, have a campaign for all plugin owners to leverage the performance setup to run the plugin specific performance tests periodically. |
It would be good to also look at how this could plug into benchmarking for other resource intensive features like ML. |
Currently we have a very basic performance test suite(link) where we execute a single workload
nyc_taxis
on a single node cluster and capture the metrics. I wanted to open a discussion for process improvements in benchmarking Opensearch(periodically as well as during every release). This would help in a more through benchmarking and ensuring that we don't miss out on any regression.Listing down few high level improvements that i can think of. Feel free to add more test scenarios.
1. Testing different cluster configurations
We should also cover different cluster configurations(multi-node clusters, with/without replicas(logical/physical), Multi-AZ configurations, Instance types varying compute, memory and storage(EBS/SSD).
2. Testing with different workloads
Existing list of workloads are mentioned here.
We should add different types of workload to simulate different traffic types like:
geonames
for structured data.pmc
for full text search.nested
for nested documents.Apart from the existing workloads, we need workloads with higher volume of data(highest is
nyc_taxis
with 75 GB approx.). Here is an existing issue on Opensearch-benchmark for the same. Workloads like these would definitely help benchmarking larger clusters (like 100 nodes!!) which reflect real workload of biggest consumers of Opensearch.3. Benchmarking other usecase(core or plugins)
Apart from search and indexing, we also need benchmarks for other features which are present in core or external plugins. Few examples are:
The text was updated successfully, but these errors were encountered: