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

research: Load and Stress Testing for Grid-Proxy #610

Open
xmonader opened this issue Jan 8, 2024 · 2 comments
Open

research: Load and Stress Testing for Grid-Proxy #610

xmonader opened this issue Jan 8, 2024 · 2 comments
Assignees
Labels
grid-proxy belongs to grid proxy
Milestone

Comments

@xmonader
Copy link
Contributor

xmonader commented Jan 8, 2024

The goal is to perform stress and load testing (give the priority to the load testing) on the grid-proxy. Stress and load testing are crucial to ensure the service can handle high traffic and maintain optimal performance under different scenarios.

Goals

  1. Identify performance bottlenecks under stress and load conditions (load is the more important one).
  2. Ensure the service can handle a high volume of concurrent requests.
  3. Validate the service's stability and responsiveness during peak usage.

Test Scenarios

  1. Scenario 1: Peak Load

    • Simulate a scenario where the service experiences peak load to evaluate its behavior under stress.
  2. Scenario 2: Concurrent Connections

    • Test the service with a large number of concurrent connections to assess its ability to handle simultaneous requests.
  3. Scenario 3: Resource Utilization

    • Monitor and analyze resource utilization (CPU, memory) during stress tests to identify potential bottlenecks.
  4. ... xD

Tooling Suggestions

To achieve the goals outlined above, the following tooling is recommended:

  1. Load Testing Tool:

    • Consider using Vegeta or Locust for simulating realistic HTTP loads.
  2. Monitoring and Profiling:

    • Integrate Prometheus for monitoring metrics such as response times, error rates, and resource utilization.
    • Utilize pprof for profiling the Go application to identify performance bottlenecks.
  3. Automation:

    • Leverage continuous integration (CI) pipelines to automate the stress and load testing process.

Note: make sure to be hitting expensive endpoints too

@rawdaGastan rawdaGastan added grid-proxy belongs to grid proxy type_feature New feature or request labels Jan 9, 2024
@ramezsaeed ramezsaeed added this to the 1.1.0 milestone Jan 11, 2024
@xmonader xmonader added this to 3.15.x May 1, 2024
@xmonader xmonader removed this from 3.14.x May 1, 2024
@Omarabdul3ziz Omarabdul3ziz removed this from 3.15.x Aug 18, 2024
@rawdaGastan rawdaGastan modified the milestones: 1.1.0, later, v0.17.x Sep 25, 2024
@SalmaElsoly SalmaElsoly self-assigned this Nov 17, 2024
@SalmaElsoly SalmaElsoly moved this to In Progress in 3.16.x Nov 17, 2024
@SalmaElsoly
Copy link
Contributor

17-11-2024

created script which used locally using vegeta pkg
testing main endpoints with Prometheus metrics for:

  • latency
  • total success request
  • success rate
  • error rate
  • count of http request based on status code

TODO:

  • add resource utilization metrics to promtheus
  • modify script
  • utilizing pprof

@SalmaElsoly
Copy link
Contributor

SalmaElsoly commented Nov 20, 2024

Update:

Prometheus --> resource utilization already each node has node exporter could be monitored from Grafana since tests can be running on different machine

pprof --> need to modify in the server, not compatible with the mux server we are using, can be added in the upcoming refactoring of the api

@SalmaElsoly SalmaElsoly moved this from In Progress to Pending Review in 3.16.x Nov 21, 2024
@rawdaGastan rawdaGastan removed the type_feature New feature or request label Jan 27, 2025
@xmonader xmonader moved this from Pending Review to Done in 3.16.x Mar 3, 2025
@xmonader xmonader removed this from 3.16.x Mar 3, 2025
@xmonader xmonader added this to 3.17.X Mar 3, 2025
@xmonader xmonader moved this to In Verification in 3.17.X Mar 3, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
grid-proxy belongs to grid proxy
Projects
Status: In Verification
Development

No branches or pull requests

5 participants