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

Proxy monitors its own load/health and throttles connections when required #470

Open
alnikola opened this issue Oct 15, 2020 · 1 comment
Labels
Priority:1 Used for divisional .NET planning Type: Enhancement New feature or request Type: Idea This issue is a high-level idea for discussion. User Story Used for divisional .NET planning
Milestone

Comments

@alnikola
Copy link
Contributor

Add self-diagnostics capability to YARP and implement throttling policies which can be applied if some thresholds have been exceeded.

Indicators to watch for:

  • CPU load
  • Memory pressure
  • Available TCP ports
  • Average/mean/p95 client requests latency

Examples of throttling policies:

  • Stop accepting new HTTP 1.1 requests by immediately returning 503
  • Stop accepting new active streams on HTTP/2 connections
  • Stop accepting new TCP connections
@alnikola alnikola added Type: Idea This issue is a high-level idea for discussion. Type: Enhancement New feature or request labels Oct 15, 2020
@alnikola alnikola changed the title Self-diagnostics with optional throttling Self-diagnostics with configurable throttling Oct 22, 2020
@samsp-msft samsp-msft changed the title Self-diagnostics with configurable throttling Proxy monitors its own load/health and throttles connections when required Oct 22, 2020
@samsp-msft samsp-msft added the User Story Used for divisional .NET planning label Oct 22, 2020
@davidni
Copy link
Contributor

davidni commented Oct 22, 2020

I'd advise caution for any solution that might have the explicit or implicit assumption that the current process is the only resource-intensive process running on the machine and / or that you can accurately determine being CPU limited. E.g. an instance of YARP running with a job object limiting cpu may be CPU-limited while the machine may have plenty of capacity to spare.

@karelz karelz added this to the YARP 1.0.0 milestone Nov 10, 2020
@samsp-msft samsp-msft added the Priority:1 Used for divisional .NET planning label Jan 21, 2021
@karelz karelz modified the milestones: YARP 1.0.0, Backlog Mar 29, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Priority:1 Used for divisional .NET planning Type: Enhancement New feature or request Type: Idea This issue is a high-level idea for discussion. User Story Used for divisional .NET planning
Projects
None yet
Development

No branches or pull requests

4 participants