@@ -23,18 +23,18 @@ type remainingRequestedResource struct {
2323 remainingAmount float64
2424}
2525
26- func SetResourcesShare (totalResource rs.ResourceQuantities , queues map [common_info.QueueID ]* rs.QueueAttributes ) {
26+ func SetResourcesShare (totalResource rs.ResourceQuantities , kValue float64 , queues map [common_info.QueueID ]* rs.QueueAttributes ) {
2727 for _ , resource := range rs .AllResources {
28- setResourceShare (totalResource [resource ], resource , queues )
28+ setResourceShare (totalResource [resource ], kValue , resource , queues )
2929 }
3030 reportDivisionResult (queues )
3131}
3232
33- func setResourceShare (totalAmount float64 , resourceName rs.ResourceName , queues map [common_info.QueueID ]* rs.QueueAttributes ) float64 {
33+ func setResourceShare (totalAmount , kValue float64 , resourceName rs.ResourceName , queues map [common_info.QueueID ]* rs.QueueAttributes ) float64 {
3434 log .InfraLogger .V (6 ).Infof ("About to start calculating %v fairShare, totalAmount: <%v>" , resourceName , totalAmount )
3535 remainingAmount := setDeservedResource (totalAmount , queues , resourceName )
3636 if remainingAmount > 0 {
37- remainingAmount = divideOverQuotaResource (remainingAmount , queues , resourceName )
37+ remainingAmount = divideOverQuotaResource (remainingAmount , kValue , queues , resourceName )
3838 } else {
3939 remainingAmount = 0
4040 }
@@ -54,24 +54,34 @@ func reportDivisionResult(queues map[common_info.QueueID]*rs.QueueAttributes) {
5454 gpuResourceShare .FairShare ,
5555 )
5656
57+ metrics .UpdateQueueUsage (
58+ queue .Name ,
59+ cpuResourceShare .GetUsage (),
60+ memoryResourceShare .GetUsage (),
61+ gpuResourceShare .GetUsage (),
62+ )
63+
5764 log .InfraLogger .V (3 ).Infof ("Resource division result for queue <%v>: " +
5865 "Queue Priority: <%d>, " +
59- "GPU: deserved: <%v>, requested: <%v>, maxAllowed: <%v>, fairShare: <%v> " +
60- "CPU (cores): deserved: <%v>, requested: <%v>, maxAllowed: <%v>, fairShare: <%v> " +
61- "memory (GB): deserved: <%v>, requested: <%v>, maxAllowed: <%v>, fairShare: <%v> " ,
66+ "GPU: deserved: <%v>, requested: <%v>, maxAllowed: <%v>, usage: <%v>, fairShare: <%v> " +
67+ "CPU (cores): deserved: <%v>, requested: <%v>, maxAllowed: <%v>, usage: <%v>, fairShare: <%v> " +
68+ "memory (GB): deserved: <%v>, requested: <%v>, maxAllowed: <%v>, usage: <%v>, fairShare: <%v> " ,
6269 queue .Name ,
6370 queue .Priority ,
6471 resource_info .HumanizeResource (gpuResourceShare .Deserved , 1 ),
6572 resource_info .HumanizeResource (gpuResourceShare .GetRequestableShare (), 1 ),
6673 resource_info .HumanizeResource (gpuResourceShare .MaxAllowed , 1 ),
74+ resource_info .HumanizeResource (gpuResourceShare .GetUsage (), 1 ),
6775 resource_info .HumanizeResource (gpuResourceShare .FairShare , 1 ),
6876 resource_info .HumanizeResource (cpuResourceShare .Deserved , resource_info .MilliCPUToCores ),
6977 resource_info .HumanizeResource (cpuResourceShare .GetRequestableShare (), resource_info .MilliCPUToCores ),
7078 resource_info .HumanizeResource (cpuResourceShare .MaxAllowed , resource_info .MilliCPUToCores ),
79+ resource_info .HumanizeResource (cpuResourceShare .GetUsage (), resource_info .MilliCPUToCores ),
7180 resource_info .HumanizeResource (cpuResourceShare .FairShare , resource_info .MilliCPUToCores ),
7281 resource_info .HumanizeResource (memoryResourceShare .Deserved , resource_info .MemoryToGB ),
7382 resource_info .HumanizeResource (memoryResourceShare .GetRequestableShare (), resource_info .MemoryToGB ),
7483 resource_info .HumanizeResource (memoryResourceShare .MaxAllowed , resource_info .MemoryToGB ),
84+ resource_info .HumanizeResource (memoryResourceShare .GetUsage (), resource_info .MemoryToGB ),
7585 resource_info .HumanizeResource (memoryResourceShare .FairShare , resource_info .MemoryToGB ))
7686 }
7787}
@@ -95,15 +105,15 @@ func setDeservedResource(
95105 return remainingAmount
96106}
97107
98- func divideOverQuotaResource (totalResourceAmount float64 , queues map [common_info.QueueID ]* rs.QueueAttributes ,
108+ func divideOverQuotaResource (totalResourceAmount , kValue float64 , queues map [common_info.QueueID ]* rs.QueueAttributes ,
99109 resourceName rs.ResourceName ) (remainingAmount float64 ) {
100110 queuesByPriority , priorities := getQueuesByPriority (queues )
101111 remainingRequested := make (map [int ]map [common_info.QueueID ]* remainingRequestedResource )
102112 remainingAmount = totalResourceAmount
103113
104114 for _ , priority := range priorities {
105115 var newRemainingRequested map [common_info.QueueID ]* remainingRequestedResource
106- remainingAmount , newRemainingRequested = divideUpToFairShare (remainingAmount , queuesByPriority [priority ], resourceName )
116+ remainingAmount , newRemainingRequested = divideUpToFairShare (remainingAmount , kValue , queuesByPriority [priority ], resourceName )
107117 if remainingRequested [priority ] == nil {
108118 remainingRequested [priority ] = make (map [common_info.QueueID ]* remainingRequestedResource )
109119 }
@@ -148,9 +158,10 @@ func getQueuesByPriority(queues map[common_info.QueueID]*rs.QueueAttributes) (ma
148158 return queuesByPriority , priorities
149159}
150160
151- func divideUpToFairShare (totalResourceAmount float64 , queues map [common_info.QueueID ]* rs.QueueAttributes ,
161+ func divideUpToFairShare (totalResourceAmount , kValue float64 , queues map [common_info.QueueID ]* rs.QueueAttributes ,
152162 resourceName rs.ResourceName ) (remainingAmount float64 , remainingRequested map [common_info.QueueID ]* remainingRequestedResource ) {
153163 remainingRequested = map [common_info.QueueID ]* remainingRequestedResource {}
164+
154165 for {
155166 shouldRunAnotherRound := false
156167 amountToGiveInCurrentRound := totalResourceAmount
0 commit comments