mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-23 19:56:01 +00:00
Simplify the formula used in the RequestedToCapacityRatio plugin
Signed-off-by: Dave Chen <dave.chen@arm.com>
This commit is contained in:
parent
0abb908638
commit
0f922b200f
@ -32,8 +32,7 @@ type FunctionShapePoint struct {
|
||||
// Shape[i].Score represents function values at meeting points.
|
||||
//
|
||||
// function f(p) is defined as:
|
||||
// shape[0].Score for p < f[0].Utilization
|
||||
// shape[i].Score for p == shape[i].Utilization
|
||||
// shape[0].Score for p < shape[0].Utilization
|
||||
// shape[n-1].Score for p > shape[n-1].Utilization
|
||||
// and linear between points (p < shape[i].Utilization)
|
||||
func BuildBrokenLinearFunction(shape FunctionShape) func(int64) int64 {
|
||||
|
@ -121,7 +121,7 @@ func buildRequestedToCapacityRatioScorerFunction(scoringFunctionShape helper.Fun
|
||||
return rawScoringFunction(maxUtilization)
|
||||
}
|
||||
|
||||
return rawScoringFunction(maxUtilization - (capacity-requested)*maxUtilization/capacity)
|
||||
return rawScoringFunction(requested * maxUtilization / capacity)
|
||||
}
|
||||
return func(requested, allocable resourceToValueMap, includeVolumes bool, requestedVolumes int, allocatableVolumes int) int64 {
|
||||
var nodeScore, weightSum int64
|
||||
|
@ -236,12 +236,12 @@ func TestResourceBinPackingSingleExtended(t *testing.T) {
|
||||
// Node1 Score:
|
||||
// rawScoringFunction(used + requested / available)
|
||||
// resourceScoringFunction((0+0),8)
|
||||
// = maxUtilization - (8-0)*(maxUtilization/8) = 0 = rawScoringFunction(0)
|
||||
// = 0/8 * maxUtilization = 0 = rawScoringFunction(0)
|
||||
// Node1 Score: 0
|
||||
// Node2 scores (used resources) on 0-MaxNodeScore scale
|
||||
// rawScoringFunction(used + requested / available)
|
||||
// resourceScoringFunction((0+0),4)
|
||||
// = maxUtilization - (4-0)*(maxUtilization/4) = 0 = rawScoringFunction(0)
|
||||
// = 0/4 * maxUtilization = 0 = rawScoringFunction(0)
|
||||
// Node2 Score: 0
|
||||
|
||||
pod: &v1.Pod{Spec: noResources},
|
||||
@ -256,12 +256,12 @@ func TestResourceBinPackingSingleExtended(t *testing.T) {
|
||||
// Node1 Score:
|
||||
// rawScoringFunction(used + requested / available)
|
||||
// resourceScoringFunction((0+2),8)
|
||||
// = maxUtilization - (8-2)*(maxUtilization/8) = 25 = rawScoringFunction(25)
|
||||
// = 2/8 * maxUtilization = 25 = rawScoringFunction(25)
|
||||
// Node1 Score: 2
|
||||
// Node2 scores (used resources) on 0-MaxNodeScore scale
|
||||
// rawScoringFunction(used + requested / available)
|
||||
// resourceScoringFunction((0+2),4)
|
||||
// = maxUtilization - (4-2)*(maxUtilization/4) = 50 = rawScoringFunction(50)
|
||||
// = 2/4 * maxUtilization = 50 = rawScoringFunction(50)
|
||||
// Node2 Score: 5
|
||||
|
||||
pod: &v1.Pod{Spec: extendedResourcePod1},
|
||||
@ -279,12 +279,12 @@ func TestResourceBinPackingSingleExtended(t *testing.T) {
|
||||
// Node1 Score:
|
||||
// rawScoringFunction(used + requested / available)
|
||||
// resourceScoringFunction((0+2),8)
|
||||
// = maxUtilization - (8-2)*(maxUtilization/8) = 25 = rawScoringFunction(25)
|
||||
// = 2/8 * maxUtilization = 25 = rawScoringFunction(25)
|
||||
// Node1 Score: 2
|
||||
// Node2 scores (used resources) on 0-MaxNodeScore scale
|
||||
// rawScoringFunction(used + requested / available)
|
||||
// resourceScoringFunction((2+2),4)
|
||||
// = maxUtilization - (4-4)*(maxUtilization/4) = maxUtilization = rawScoringFunction(maxUtilization)
|
||||
// = 4/4 * maxUtilization = maxUtilization = rawScoringFunction(maxUtilization)
|
||||
// Node2 Score: 10
|
||||
|
||||
pod: &v1.Pod{Spec: extendedResourcePod1},
|
||||
@ -302,12 +302,12 @@ func TestResourceBinPackingSingleExtended(t *testing.T) {
|
||||
// Node1 Score:
|
||||
// rawScoringFunction(used + requested / available)
|
||||
// resourceScoringFunction((0+4),8)
|
||||
// = maxUtilization - (8-4)*(maxUtilization/8) = 50 = rawScoringFunction(50)
|
||||
// = 4/8 * maxUtilization = 50 = rawScoringFunction(50)
|
||||
// Node1 Score: 5
|
||||
// Node2 scores (used resources) on 0-MaxNodeScore scale
|
||||
// rawScoringFunction(used + requested / available)
|
||||
// resourceScoringFunction((0+4),4)
|
||||
// = maxUtilization - (4-4)*(maxUtilization/4) = maxUtilization = rawScoringFunction(maxUtilization)
|
||||
// = 4/4 * maxUtilization = maxUtilization = rawScoringFunction(maxUtilization)
|
||||
// Node2 Score: 10
|
||||
|
||||
pod: &v1.Pod{Spec: extendedResourcePod2},
|
||||
@ -413,11 +413,11 @@ func TestResourceBinPackingMultipleExtended(t *testing.T) {
|
||||
// intel.com/foo:
|
||||
// rawScoringFunction(used + requested / available)
|
||||
// resourceScoringFunction((0+0),8)
|
||||
// = 100 - (8-0)*(100/8) = 0 = rawScoringFunction(0)
|
||||
// = 0/8 * 100 = 0 = rawScoringFunction(0)
|
||||
// intel.com/bar:
|
||||
// rawScoringFunction(used + requested / available)
|
||||
// resourceScoringFunction((0+0),4)
|
||||
// = 100 - (4-0)*(100/4) = 0 = rawScoringFunction(0)
|
||||
// = 0/4 * 100 = 0 = rawScoringFunction(0)
|
||||
// Node1 Score: (0 * 3) + (0 * 5) / 8 = 0
|
||||
|
||||
// Node2 scores (used resources) on 0-10 scale
|
||||
@ -425,11 +425,11 @@ func TestResourceBinPackingMultipleExtended(t *testing.T) {
|
||||
// intel.com/foo:
|
||||
// rawScoringFunction(used + requested / available)
|
||||
// resourceScoringFunction((0+0),4)
|
||||
// = 100 - (4-0)*(100/4) = 0 = rawScoringFunction(0)
|
||||
// = 0/4 * 100 = 0 = rawScoringFunction(0)
|
||||
// intel.com/bar:
|
||||
// rawScoringFunction(used + requested / available)
|
||||
// resourceScoringFunction((0+0),8)
|
||||
// = 100 - (8-0)*(100/8) = 0 = rawScoringFunction(0)
|
||||
// = 0/8 * 100 = 0 = rawScoringFunction(0)
|
||||
// Node2 Score: (0 * 3) + (0 * 5) / 8 = 0
|
||||
|
||||
pod: &v1.Pod{Spec: noResources},
|
||||
@ -447,11 +447,11 @@ func TestResourceBinPackingMultipleExtended(t *testing.T) {
|
||||
// intel.com/foo:
|
||||
// rawScoringFunction(used + requested / available)
|
||||
// resourceScoringFunction((0+2),8)
|
||||
// = 100 - (8-2)*(100/8) = 25 = rawScoringFunction(25)
|
||||
// = 2/8 * 100 = 25 = rawScoringFunction(25)
|
||||
// intel.com/bar:
|
||||
// rawScoringFunction(used + requested / available)
|
||||
// resourceScoringFunction((0+2),4)
|
||||
// = 100 - (4-2)*(100/4) = 50 = rawScoringFunction(50)
|
||||
// = 2/4 * 100 = 50 = rawScoringFunction(50)
|
||||
// Node1 Score: (2 * 3) + (5 * 5) / 8 = 4
|
||||
|
||||
// Node2 scores (used resources) on 0-10 scale
|
||||
@ -459,11 +459,11 @@ func TestResourceBinPackingMultipleExtended(t *testing.T) {
|
||||
// intel.com/foo:
|
||||
// rawScoringFunction(used + requested / available)
|
||||
// resourceScoringFunction((0+2),4)
|
||||
// = 100 - (4-2)*(100/4) = 50 = rawScoringFunction(50)
|
||||
// = 2/4 * 100 = 50 = rawScoringFunction(50)
|
||||
// intel.com/bar:
|
||||
// rawScoringFunction(used + requested / available)
|
||||
// resourceScoringFunction((0+2),8)
|
||||
// = 100 - (8-2)*(100/8) = 25 = rawScoringFunction(25)
|
||||
// = 2/8 * 100 = 25 = rawScoringFunction(25)
|
||||
// Node2 Score: (5 * 3) + (2 * 5) / 8 = 3
|
||||
|
||||
pod: &v1.Pod{Spec: extnededResourcePod1},
|
||||
@ -484,22 +484,22 @@ func TestResourceBinPackingMultipleExtended(t *testing.T) {
|
||||
// intel.com/foo:
|
||||
// rawScoringFunction(used + requested / available)
|
||||
// resourceScoringFunction((0+2),8)
|
||||
// = 100 - (8-2)*(100/8) = 25 = rawScoringFunction(25)
|
||||
// = 2/8 * 100 = 25 = rawScoringFunction(25)
|
||||
// intel.com/bar:
|
||||
// rawScoringFunction(used + requested / available)
|
||||
// resourceScoringFunction((0+2),4)
|
||||
// = 100 - (4-2)*(100/4) = 50 = rawScoringFunction(50)
|
||||
// = 2/4 * 100 = 50 = rawScoringFunction(50)
|
||||
// Node1 Score: (2 * 3) + (5 * 5) / 8 = 4
|
||||
// Node2 scores (used resources) on 0-10 scale
|
||||
// rawScoringFunction(used + requested / available)
|
||||
// intel.com/foo:
|
||||
// rawScoringFunction(used + requested / available)
|
||||
// resourceScoringFunction((2+2),4)
|
||||
// = 100 - (4-4)*(100/4) = 100 = rawScoringFunction(100)
|
||||
// = 4/4 * 100 = 100 = rawScoringFunction(100)
|
||||
// intel.com/bar:
|
||||
// rawScoringFunction(used + requested / available)
|
||||
// resourceScoringFunction((2+2),8)
|
||||
// = 100 - (8-4)*(100/8) = 50 = rawScoringFunction(50)
|
||||
// = 4/8 *100 = 50 = rawScoringFunction(50)
|
||||
// Node2 Score: (10 * 3) + (5 * 5) / 8 = 7
|
||||
|
||||
pod: &v1.Pod{Spec: extnededResourcePod1},
|
||||
@ -535,22 +535,22 @@ func TestResourceBinPackingMultipleExtended(t *testing.T) {
|
||||
// intel.com/foo:
|
||||
// rawScoringFunction(used + requested / available)
|
||||
// resourceScoringFunction((0+4),8)
|
||||
// = 100 - (8-4)*(100/8) = 50 = rawScoringFunction(50)
|
||||
// 4/8 * 100 = 50 = rawScoringFunction(50)
|
||||
// intel.com/bar:
|
||||
// rawScoringFunction(used + requested / available)
|
||||
// resourceScoringFunction((0+2),4)
|
||||
// = 100 - (4-2)*(100/4) = 50 = rawScoringFunction(50)
|
||||
// = 2/4 * 100 = 50 = rawScoringFunction(50)
|
||||
// Node1 Score: (5 * 3) + (5 * 5) / 8 = 5
|
||||
// Node2 scores (used resources) on 0-10 scale
|
||||
// rawScoringFunction(used + requested / available)
|
||||
// intel.com/foo:
|
||||
// rawScoringFunction(used + requested / available)
|
||||
// resourceScoringFunction((0+4),4)
|
||||
// = 100 - (4-4)*(100/4) = 100 = rawScoringFunction(100)
|
||||
// = 4/4 * 100 = 100 = rawScoringFunction(100)
|
||||
// intel.com/bar:
|
||||
// rawScoringFunction(used + requested / available)
|
||||
// resourceScoringFunction((0+2),8)
|
||||
// = 100 - (8-2)*(100/8) = 25 = rawScoringFunction(25)
|
||||
// = 2/8 * 100 = 25 = rawScoringFunction(25)
|
||||
// Node2 Score: (10 * 3) + (2 * 5) / 8 = 5
|
||||
|
||||
pod: &v1.Pod{Spec: extnededResourcePod2},
|
||||
|
Loading…
Reference in New Issue
Block a user