-
Notifications
You must be signed in to change notification settings - Fork 196
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
Large Scale Performance Tests #983
base: mainline
Are you sure you want to change the base?
Conversation
@@ -0,0 +1,137 @@ | |||
name: Large Scale Performance Tests |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why do we need a different workflow to run this? Can we reuse the locust_performance_test
workflow?
The extra step can be done using lifecycle hook in the locust file, if it does not take too long to run
# Index name from environment variable | ||
INDEX_NAME = os.getenv('MARQO_INDEX_NAME', 'locust-test') | ||
|
||
class MarqoUser(FastHttpUser): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We can use MarqoHttpUser which encapsulate marqo index already. You won't need to manually fire request events. We can also add telemetry support in MarqoHttpUser
# Extract telemetry data | ||
telemetry = response.get('telemetry', {}) | ||
telemetry['total_time_ms'] = total_time | ||
self.telemetry_data.append(telemetry) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How large is this data, would it cause out of memory issue if we run this tests for a long time with large load? Should we consider append it to a file regularly to reduce the memory footprint?
What kind of change does this PR introduce? (Bug fix, feature, docs update, ...)
Additional Test
What is the current behavior? (You can also link to an open issue here)
What is the new behavior (if this is a feature change)?
New large scale performance test simulating up to 500 rps against a cloud marqo index
Does this PR introduce a breaking change? (What changes might users need to make in their application due to this PR?)
Have unit tests been run against this PR? (Has there also been any additional testing?)
Related Python client changes (link commit/PR here)
Related documentation changes (link commit/PR here)
Other information:
Please check if the PR fulfills these requirements