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

Add more benchmark scenarios #222

Closed
halter73 opened this issue Jun 2, 2020 · 2 comments
Closed

Add more benchmark scenarios #222

halter73 opened this issue Jun 2, 2020 · 2 comments
Labels
Type: Task A task that needs to be completed.
Milestone

Comments

@halter73
Copy link
Member

halter73 commented Jun 2, 2020

This is a follow up to #40.

There are countless proxy scenarios and variations that can be benchmarked, but currently our proxy benchmarks only capture the following scenario:

  • Using unencrypted connections and making HTTP/1.1 GET requests to both the proxy and backend

This scenario varies by response body size: 10B, 100B, 1KB, 10KB, 100KB plaintext responses are currently tested. Limiting response body sizes to just 32KB and 255KB should reduce the total number of scenarios allowing us to add more interesting scenarios without creating information overload.

The next proxy benchmark scenarios we plan to add are:

  • Using TLS connections and making HTTP/2 GET requests to both the proxy and backend
  • Using TLS connections and making HTTP/1.1 GET requests to both the proxy and backend
  • Using unencrypted connections and making HTTP/1.1 POST requests to both the proxy and backend

After those scenarios are completed. Here are even more scenarios we can consider.

  • Logging completely disabled
  • Requests with bodies
  • Variations on headers
    • Large request headers
    • Large response headers
    • Request/Response header transformation
  • gRPC through the rpoxy
    • gRPC streaming
@halter73 halter73 added Type: Idea This issue is a high-level idea for discussion. Type: Task A task that needs to be completed. and removed Type: Idea This issue is a high-level idea for discussion. labels Jun 2, 2020
@halter73 halter73 self-assigned this Jun 2, 2020
@davidni
Copy link
Contributor

davidni commented Jun 2, 2020

Sugg adding larger payloads as well e.g. 10MB.

For context, see e.g. an issue I had with HttpSysServer on ASP .NET Core 2. A trivial HttpSys flag passed incorrectly resulted in massive impact (more than 20x slower throughput in that case). I expect most customers will encounter large payloads at one point or another, and making sure we're not adding perf cliffs along the way would be nice.

@karelz
Copy link
Member

karelz commented Mar 29, 2021

Triage:

We added most of all these benchmarks: https://aka.ms/aspnet/benchmarks
Couple of them are in progress of being added.

Closing, current status is enough for 1.0 for now.

@karelz karelz closed this as completed Mar 29, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Type: Task A task that needs to be completed.
Projects
None yet
Development

No branches or pull requests

3 participants