-
Notifications
You must be signed in to change notification settings - Fork 284
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 Weight in localQueue for better resource partitioning #752
Comments
If no one working on this, I will try to create a kep to track this issue and work on this |
Due to the fact that each cluster queue can borrow resources from other cluster queues, the total amount of resources for each queue is uncertain. So it is not easy to design with weight. I think we can use 'max and min' or 'nominal and borrowingLimit' to define the limit for local queue. |
Ideally we should be using just weight so that new LocalQueues can be easily added without changing the configuration for other queues. In system that use weights, the calculations of fair sharing are always dynamic and depend on how many queues have running or pending jobs and the total resources from the parent queue. |
The weight is a relative value, unlike max or min, it's an absolute value. So as Aldo shares, fair sharing is dynamic. Like queueA's weight is a, queueB's weight is b, then queueA can get a/(a+b) of the resources. One concern is if a queue get the resources, then another queue joined with a hight weight, then will the original queue be preempted? |
If we just use weight, how this weight work with borrow? Should we use We can achieve the goals by two steps. |
This sounds like a better idea, and closer to what I've seen other systems do. Another thing to consider is that if a queue is 100% empty and has no running workloads, there is no need to consider it in the calculations.
That is a very important question. Maybe it should be configurable whether or not to preempt. I think the best step at this point is to do a review of existing systems. Then we can start collaborating in a google doc or KEP PR. |
cc @mwielgus |
@alculquicondor Hi, I have submit a new kep for this, we can discuss details there. |
The Kubernetes project currently lacks enough contributors to adequately respond to all issues. This bot triages un-triaged issues according to the following rules:
You can:
Please send feedback to sig-contributor-experience at kubernetes/community. /lifecycle stale |
/remove-lifecycle stale |
/close |
@alculquicondor: 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. |
What would you like to be added:
Currently, for queues inside one CQ, we can submit queues as much as we want until the bottleneck of CQ, and one queue can occupy the whole resources with higher priorities, considering localQueue represents the tenant, this is not reasonable. We should have hard restrictions on how much resources each tenant can have. Instead of defining the resources requests inconveniently, we can have a weight field.
One think for better resource utilization consideration is when resources are sufficient, how to breakthrough the hard restriction of weight and also preemption when resources are not enough.
Why is this needed:
Multi-tenant requirement and better resource utilization.
Completion requirements:
This enhancement requires the following artifacts:
The artifacts should be linked in subsequent comments.
The text was updated successfully, but these errors were encountered: