-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
Can we set a default CPU/Memory Limit/Request for queue_proxy container #5829
Comments
There exists #4151 |
You should just be able to apply the following annotation to the metadata of your Revision Template within your Knative Service. For example, in your Knative Service Spec
|
Thank you guys for the reply! I do know that I can use this annotation but just wondering if knative can set a reasonable default value for users. |
What's unreasonable about the current value? |
@mattmoor Let there be 50 idling concurrent Pods running, that's already 25m x 50 = 1250m wasted CPU resource usage. Sadly annotations like: |
I agree with @TheEvilCoder42 , can we support set queue requestCpu smaller,or even zero |
@TheEvilCoder42 50 running idle pods defeats the purpose of knative, i.e. scaling. |
Issues go stale after 90 days of inactivity. Send feedback to Knative Productivity Slack channel or file an issue in knative/test-infra. /lifecycle stale |
bumping this up: seems like we're relying on users to set This means the scheduler won't be accounting for all the queue proxies when scheduling pods, which - unless Im missing something - could lead to OOM errors, and will break on any namespaces with a Does anyone have an objection to setting a default mem/cpu request/limit in defaults.yaml for this? If not I'll PR one. |
FWIW, we're hitting issues here too when using LimitRanges. If we're adding a setting here, let's please make sure one can completely unset the default too. In fact: Should the default already be... nothing? Feels weird that we're setting a default request on the queue-proxy but not on the user container 🤔 |
I think the problem is there's currently no default, but ResourceQuota/LimitRange require the Queue Proxy to have it set. So there's no way for any of the samples to work out of the box on a namespace with ResourceQuota/LimitRange set unless the user adds this annotation. |
Should this be surfaced to the API WG maybe? Work out a small proposal how better integration with LimitRange etc. looks like? |
yeah that might make sense, I can experiment a bit with current behaviour then bring up at next api wg meeting |
/remove-lifecycle stale Yeah I don't like what we have now, I think the current value is another thing that dates back to the early VPA work, the annotation (and clamping) is newer, but I think this whole area could use some focused investigation and effort. I think @vagababov also suspected this as a source of 5xx under higher load (e.g. ~60k QPS) I'd love to see someone deeply investigate the resource usage of the queue proxy and come up with a proposal for how we manage its resources. Any takers? cc @tcnghia too |
OK, to get us started on this I spun up a basic proposal for operator-set defaults req/limits and added to API WG meeting agenda. |
FYI, we are hitting a critical tail latency issue even for a very simple use case with low qps #8057 |
This issue is stale because it has been open for 90 days with no |
Just for anyone searching here, operator-settable Queue Proxy requests/limits landed in #8195. |
It looks like this is actually done? /close |
@evankanderson: Closing this issue. In response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
In what area(s)?
Ask your question here:
Hi guys, is there a way for knative serving to set a default value for QueueSideCarResourcePercentageAnnotation:
serving/pkg/apis/serving/register.go
Line 71 in ec457ad
We can not apply resourcequota to our k8s cluster because the queue_proxy container does not have both CPU/Memory Limit configured. We have multiple components depend on knative serving and I think it makes sense that knative serving set a default value and users can mutate it if we want. Thought?
The text was updated successfully, but these errors were encountered: