-
Notifications
You must be signed in to change notification settings - Fork 205
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
Feature: Self throttling for ARM PUT requests #2597
Comments
Throttling is 1200 per subscription per connection. I've seen guidance that we increase the number of possible connections per host to get access to significantly more throughput. The suggestions I've seen:
If ForceAttemptHTTP2 is true (the default), connections using HTTP2 will be multiplexed over a single TCP connection, which means still hitting a single ARM FE. See golang/go#39302 for details about disabling HTTP2 (though we may not need to disable it, just not force it?). More reading: |
Less of an issue now that we've switched to using multiple connections. We'll keep this in the backlog for now, but we should reassess the need for this in a few months if we've had no reports of throttling. |
We've decided we're not going to do this, and will instead pursue #3487, which we believe should also alleviate this issue but in a "better" way. |
In theory, ASO could keep track of the number of ARM PUT requests it has issued and proactively delay further requests that would push it over the threshold for ARM throttling.
For example, taking a limit of 1200 PUTs per hour, we could keep track of the number of PUT requests made over the last 5 minutes and self-throttle to keep under 20 per minute.
Given our multitenancy support, we'd need to keep track per-subscription.
Possible extensions
This isn't necessarily obsoleted by #1491, as even with that in place we would have a risk of throttling after someone applies a large YAML file containing many resources.
The text was updated successfully, but these errors were encountered: