-
Notifications
You must be signed in to change notification settings - Fork 370
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
feat: support overload manager #2062
Conversation
Signed-off-by: zhaonan <zhaonan06@corp.netease.com>
How to set the approximate fixed heap value of the system through a script, i need help. |
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #2062 +/- ##
==========================================
+ Coverage 65.04% 65.17% +0.13%
==========================================
Files 99 99
Lines 14536 14542 +6
==========================================
+ Hits 9455 9478 +23
+ Misses 4494 4480 -14
+ Partials 587 584 -3 ☔ View full report in Codecov by Sentry. |
// After the feature is enabled, following two overload actions are configured to Envoy: | ||
// 1.Shrink heap action is executed when 95% of the maximum heap size is reached. | ||
// 2.Envoy will stop accepting requests when 98% of the maximum heap size is reached. | ||
OverloadManager *OverloadManager `json:"overloadManager,omitempty"` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
imo we shouldnt expose envoyisms such as overloadManager
directly, but do it in a way that is relevant to the EG user
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You're right,the MaxHeapSizeBytes
value should be exposed directly to enable the overload manager. I'm still thinking about how to set this value specifically.
@@ -213,6 +222,14 @@ type EnvoyProxyList struct { | |||
Items []EnvoyProxy `json:"items"` | |||
} | |||
|
|||
// OverloadManager defines the configuration for the Overload Manager in envoy. | |||
type OverloadManager struct { | |||
// The appropriate number of bytes can be different from system to system. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we shouldnt add this API field if we cannot suggest a prescriptive way for a user to come up with a value to insert
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The google VRP example uses a 2GiB max heap size when executing a docker container with 3GB of memory.
Proposal:
- By default, set MaxHeapSize to 70% of the envoy container's memory limit (which is known to EG, since it's generating the PodTemplate). If the limit is not set - don't configure anything.
- Allow users to override this setting - configuring a custom percent.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
hey @guydc agree with the approach ! since EG creates the envoy proxy, we have the the exact memory specs for the envoy proxy fleet
imo we'll need to gather some more data before we decide on the the max heap and threshold values
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
chatted with @KBaichoo who advised that we could consider a tighter limit like 80% to optimize resources, thanks !
This pull request has been automatically marked as stale because it has not had activity in the last 30 days. Please feel free to give a status update now, ping for review, when it's ready. Thank you for your contributions! |
This pull request has been automatically marked as stale because it has not had activity in the last 30 days. Please feel free to give a status update now, ping for review, when it's ready. Thank you for your contributions! |
What type of PR is this?
support overload manager
What this PR does / why we need it:
Which issue(s) this PR fixes:
Related #1966 #1048