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

Support warmup aggression values smaller than 1 in DestinationRule #3395

Open
arnogeurts opened this issue Dec 17, 2024 · 3 comments
Open

Support warmup aggression values smaller than 1 in DestinationRule #3395

arnogeurts opened this issue Dec 17, 2024 · 3 comments

Comments

@arnogeurts
Copy link

Describe the feature request

With #3215 the aggression and min_weight_percent settings are added to the warmup of the DestinationRule. However, in that feature the aggression is restricted to values in the range [1, +∞), whereas Envoy supports values in the range [0, +∞). This feature request adds support for the full range of the aggression settings in Envoy.

Describe alternatives you've considered

Affected product area (please put an X in all that apply)

[ ] Configuration Infrastructure
[ ] Docs
[ ] Installation
[x] Networking
[ ] Performance and Scalability
[ ] Policies and Telemetry
[ ] Security
[ ] Test and Release
[ ] User Experience

Additional context

@RafalSumislawski
Copy link

Envoy requires aggression to be greater than 0, so the range of supported values should be (0, +∞) not [0, +∞).

https://www.envoyproxy.io/docs/envoy/v1.33.0/api-v3/config/cluster/v3/cluster.proto#envoy-v3-api-field-config-cluster-v3-cluster-slowstartconfig-aggression

@hzxuzhonghu
Copy link
Member

Is there much diff with 1 and 0.1?

@RafalSumislawski
Copy link

Following the formula in envoys documentation https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/upstream/load_balancing/slow_start. The difference is that between x (linear) and x^10 (exponential).

Image

Image

With a 60s warmup, and 1000 req/s traffic per pod, at 30th second of the warmup aggression=1 will send ~500req/s to the warming up pod. And agression=0.1 will send ~1 req/s to that pod. (assuming that min_weight doesn't interfere with that)

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

No branches or pull requests

4 participants