[
https://issues.apache.org/jira/browse/YUNIKORN-1728?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17721162#comment-17721162
]
Wilfred Spiegelenburg commented on YUNIKORN-1728:
-------------------------------------------------
We have thought about support of percentages for quotas before and at that
point put it aside.
Percentages work well for a max quota if you have a fixed cluster size. However
in a auto scaling cluster it will not work. That use case breaks the percentage
calculation.
Example: YuniKorn runs in a public cloud (Azure, AWS). The cluster I deploy has
a minimum number of nodes which runs the YuniKorn scheduler and admission
controller. That node has 64GB/8cpu. I turn on the cluster autoscaler to add
nodes on demand. The root queue shows a size of 64GB/8cpu. The quota for the
workload queue, {_}root.example{_}, is set to 25%.
What is the quota for the _root.example_ queue? YuniKorn does not know how
large the cluster can become as it does not know the autoscaler settings. Using
the root queue size and then say the _root.example_ queue has a quota of
16G/2cpu would break autoscaling. There is no other value to base the quota on.
Auto scaling is triggered for pending requests *up to* the quota of the queue.
So the _root.example_ queue would not trigger autoscaling ever. This remains a
problem unless there is a queue in the hierarchy that defines a max quota.
If we would have a 3 level setup _root.parent.example_ and the _parent_ queue
has a max set. We could then calculate the max as the percentage of the parent.
That would work as it provides a fixed value to work against. It does make the
validation for where we allow percentages really complex.
If you are proposing to _only_ support the percentage for the guaranteed quota
then that would be possible. But again only if the queue also defines a max at
the same level. In the case that there is no max defined on the queue we have
the same issue again. We need something to base the percentage on.
> MaxApplication enforcement supports percentage of resources
> -----------------------------------------------------------
>
> Key: YUNIKORN-1728
> URL: https://issues.apache.org/jira/browse/YUNIKORN-1728
> Project: Apache YuniKorn
> Issue Type: New Feature
> Components: core - scheduler
> Reporter: Rainie Li
> Assignee: Rainie Li
> Priority: Major
>
> Currently we need to set queue with guaranteed resources.
> example:
> {code:java}
> queues:
> - name: root
> submitacl: '*'
> queues:
> - name: queue1
> submitacl: '*'
> maxapplications: 12
> resources:
> guaranteed:
> {memory: 6290G, vcore: 816}
> max:
> {memory: 31450G, vcore: 4080}
> {code}
> It will be convenient to support percentage, so that we can configure queue
> without calculating the actual number.
> {code:java}
> queues:
> - name: root
> submitacl: '*'
> queues:
> - name: queue1
> submitacl: '*'
> maxapplications: 12
> resources:
> guaranteed:
> {memory: 20%, vcore: 20%}
> max:
> {memory: 31450G, vcore: 4080}
> {code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]