Skip to content
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

Draft
wants to merge 7 commits into
base: mainline
Choose a base branch
from

Conversation

RaynorChavez
Copy link
Member

  • 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

  • The commit message follows our guidelines
  • Tests for the changes have been added (for bug fixes/features)
  • Docs have been added / updated (for bug fixes / features)

@@ -0,0 +1,137 @@
name: Large Scale Performance Tests
Copy link
Collaborator

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):
Copy link
Collaborator

@papa99do papa99do Oct 1, 2024

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)
Copy link
Collaborator

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?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants