From 6b9fb2c5918fbc8cfe5aa6ecd77a9be72d6fa8c7 Mon Sep 17 00:00:00 2001 From: Dave Chen Date: Tue, 12 May 2020 17:44:41 +0800 Subject: [PATCH] Fix nits in comments for NodeResources plugins --- .../noderesources/balanced_allocation_test.go | 52 +++++------ .../noderesources/least_allocated_test.go | 92 +++++++++---------- .../plugins/noderesources/most_allocated.go | 12 +-- .../noderesources/most_allocated_test.go | 56 +++++------ .../requested_to_capacity_ratio_test.go | 32 +++---- 5 files changed, 121 insertions(+), 123 deletions(-) diff --git a/pkg/scheduler/framework/plugins/noderesources/balanced_allocation_test.go b/pkg/scheduler/framework/plugins/noderesources/balanced_allocation_test.go index 9aca61374bce8..575bce1aa7c64 100644 --- a/pkg/scheduler/framework/plugins/noderesources/balanced_allocation_test.go +++ b/pkg/scheduler/framework/plugins/noderesources/balanced_allocation_test.go @@ -220,42 +220,42 @@ func TestNodeResourcesBalancedAllocation(t *testing.T) { name string }{ { - // Node1 scores (remaining resources) on 0-10 scale + // Node1 scores (remaining resources) on 0-MaxNodeScore scale // CPU Fraction: 0 / 4000 = 0% // Memory Fraction: 0 / 10000 = 0% - // Node1 Score: 10 - (0-0)*100 = 100 - // Node2 scores (remaining resources) on 0-10 scale + // Node1 Score: MaxNodeScore - (0-0)*MaxNodeScore = MaxNodeScore + // Node2 scores (remaining resources) on 0-MaxNodeScore scale // CPU Fraction: 0 / 4000 = 0 % // Memory Fraction: 0 / 10000 = 0% - // Node2 Score: 10 - (0-0)*100 = 100 + // Node2 Score: MaxNodeScore - (0-0)*MaxNodeScore = MaxNodeScore pod: &v1.Pod{Spec: noResources}, nodes: []*v1.Node{makeNode("machine1", 4000, 10000), makeNode("machine2", 4000, 10000)}, expectedList: []framework.NodeScore{{Name: "machine1", Score: framework.MaxNodeScore}, {Name: "machine2", Score: framework.MaxNodeScore}}, name: "nothing scheduled, nothing requested", }, { - // Node1 scores on 0-10 scale + // Node1 scores on 0-MaxNodeScore scale // CPU Fraction: 3000 / 4000= 75% // Memory Fraction: 5000 / 10000 = 50% - // Node1 Score: 10 - (0.75-0.5)*100 = 75 - // Node2 scores on 0-10 scale + // Node1 Score: MaxNodeScore - (0.75-0.5)*MaxNodeScore = 75 + // Node2 scores on 0-MaxNodeScore scale // CPU Fraction: 3000 / 6000= 50% // Memory Fraction: 5000/10000 = 50% - // Node2 Score: 10 - (0.5-0.5)*100 = 100 + // Node2 Score: MaxNodeScore - (0.5-0.5)*MaxNodeScore = MaxNodeScore pod: &v1.Pod{Spec: cpuAndMemory}, nodes: []*v1.Node{makeNode("machine1", 4000, 10000), makeNode("machine2", 6000, 10000)}, expectedList: []framework.NodeScore{{Name: "machine1", Score: 75}, {Name: "machine2", Score: framework.MaxNodeScore}}, name: "nothing scheduled, resources requested, differently sized machines", }, { - // Node1 scores on 0-10 scale + // Node1 scores on 0-MaxNodeScore scale // CPU Fraction: 0 / 4000= 0% // Memory Fraction: 0 / 10000 = 0% - // Node1 Score: 10 - (0-0)*100 = 100 - // Node2 scores on 0-10 scale + // Node1 Score: MaxNodeScore - (0-0)*MaxNodeScore = MaxNodeScore + // Node2 scores on 0-MaxNodeScore scale // CPU Fraction: 0 / 4000= 0% // Memory Fraction: 0 / 10000 = 0% - // Node2 Score: 10 - (0-0)*100 = 100 + // Node2 Score: MaxNodeScore - (0-0)*MaxNodeScore= MaxNodeScore pod: &v1.Pod{Spec: noResources}, nodes: []*v1.Node{makeNode("machine1", 4000, 10000), makeNode("machine2", 4000, 10000)}, expectedList: []framework.NodeScore{{Name: "machine1", Score: framework.MaxNodeScore}, {Name: "machine2", Score: framework.MaxNodeScore}}, @@ -268,14 +268,14 @@ func TestNodeResourcesBalancedAllocation(t *testing.T) { }, }, { - // Node1 scores on 0-10 scale + // Node1 scores on 0-MaxNodeScore scale // CPU Fraction: 6000 / 10000 = 60% // Memory Fraction: 0 / 20000 = 0% - // Node1 Score: 10 - (0.6-0)*100 = 40 - // Node2 scores on 0-10 scale + // Node1 Score: MaxNodeScore - (0.6-0)*MaxNodeScore = 40 + // Node2 scores on 0-MaxNodeScore scale // CPU Fraction: 6000 / 10000 = 60% // Memory Fraction: 5000 / 20000 = 25% - // Node2 Score: 10 - (0.6-0.25)*100 = 65 + // Node2 Score: MaxNodeScore - (0.6-0.25)*MaxNodeScore = 65 pod: &v1.Pod{Spec: noResources}, nodes: []*v1.Node{makeNode("machine1", 10000, 20000), makeNode("machine2", 10000, 20000)}, expectedList: []framework.NodeScore{{Name: "machine1", Score: 40}, {Name: "machine2", Score: 65}}, @@ -288,14 +288,14 @@ func TestNodeResourcesBalancedAllocation(t *testing.T) { }, }, { - // Node1 scores on 0-10 scale + // Node1 scores on 0-MaxNodeScore scale // CPU Fraction: 6000 / 10000 = 60% // Memory Fraction: 5000 / 20000 = 25% - // Node1 Score: 10 - (0.6-0.25)*100 = 65 - // Node2 scores on 0-10 scale + // Node1 Score: MaxNodeScore - (0.6-0.25)*MaxNodeScore = 65 + // Node2 scores on 0-MaxNodeScore scale // CPU Fraction: 6000 / 10000 = 60% // Memory Fraction: 10000 / 20000 = 50% - // Node2 Score: 10 - (0.6-0.5)*100 = 9 + // Node2 Score: MaxNodeScore - (0.6-0.5)*MaxNodeScore = 90 pod: &v1.Pod{Spec: cpuAndMemory}, nodes: []*v1.Node{makeNode("machine1", 10000, 20000), makeNode("machine2", 10000, 20000)}, expectedList: []framework.NodeScore{{Name: "machine1", Score: 65}, {Name: "machine2", Score: 90}}, @@ -306,14 +306,14 @@ func TestNodeResourcesBalancedAllocation(t *testing.T) { }, }, { - // Node1 scores on 0-10 scale + // Node1 scores on 0-MaxNodeScore scale // CPU Fraction: 6000 / 10000 = 60% // Memory Fraction: 5000 / 20000 = 25% - // Node1 Score: 10 - (0.6-0.25)*100 = 65 - // Node2 scores on 0-10 scale + // Node1 Score: MaxNodeScore - (0.6-0.25)*MaxNodeScore = 65 + // Node2 scores on 0-MaxNodeScore scale // CPU Fraction: 6000 / 10000 = 60% // Memory Fraction: 10000 / 50000 = 20% - // Node2 Score: 10 - (0.6-0.2)*100 = 60 + // Node2 Score: MaxNodeScore - (0.6-0.2)*MaxNodeScore = 60 pod: &v1.Pod{Spec: cpuAndMemory}, nodes: []*v1.Node{makeNode("machine1", 10000, 20000), makeNode("machine2", 10000, 50000)}, expectedList: []framework.NodeScore{{Name: "machine1", Score: 65}, {Name: "machine2", Score: 60}}, @@ -324,11 +324,11 @@ func TestNodeResourcesBalancedAllocation(t *testing.T) { }, }, { - // Node1 scores on 0-10 scale + // Node1 scores on 0-MaxNodeScore scale // CPU Fraction: 6000 / 4000 > 100% ==> Score := 0 // Memory Fraction: 0 / 10000 = 0 // Node1 Score: 0 - // Node2 scores on 0-10 scale + // Node2 scores on 0-MaxNodeScore scale // CPU Fraction: 6000 / 4000 > 100% ==> Score := 0 // Memory Fraction 5000 / 10000 = 50% // Node2 Score: 0 diff --git a/pkg/scheduler/framework/plugins/noderesources/least_allocated_test.go b/pkg/scheduler/framework/plugins/noderesources/least_allocated_test.go index 9924fede06290..48786aca95f3f 100644 --- a/pkg/scheduler/framework/plugins/noderesources/least_allocated_test.go +++ b/pkg/scheduler/framework/plugins/noderesources/least_allocated_test.go @@ -98,27 +98,27 @@ func TestNodeResourcesLeastAllocated(t *testing.T) { name string }{ { - // Node1 scores (remaining resources) on 0-10 scale - // CPU Score: ((4000 - 0) *100) / 4000 = 100 - // Memory Score: ((10000 - 0) *100) / 10000 = 100 + // Node1 scores (remaining resources) on 0-MaxNodeScore scale + // CPU Score: ((4000 - 0) * MaxNodeScore) / 4000 = MaxNodeScore + // Memory Score: ((10000 - 0) * MaxNodeScore) / 10000 = MaxNodeScore // Node1 Score: (100 + 100) / 2 = 100 - // Node2 scores (remaining resources) on 0-10 scale - // CPU Score: ((4000 - 0) *100) / 4000 = 100 - // Memory Score: ((10000 - 0) *10) / 10000 = 100 - // Node2 Score: (100 + 100) / 2 = 100 + // Node2 scores (remaining resources) on 0-MaxNodeScore scale + // CPU Score: ((4000 - 0) * MaxNodeScore) / 4000 = MaxNodeScore + // Memory Score: ((10000 - 0) * MaxNodeScore) / 10000 = MaxNodeScore + // Node2 Score: (MaxNodeScore + MaxNodeScore) / 2 = MaxNodeScore pod: &v1.Pod{Spec: noResources}, nodes: []*v1.Node{makeNode("machine1", 4000, 10000), makeNode("machine2", 4000, 10000)}, expectedList: []framework.NodeScore{{Name: "machine1", Score: framework.MaxNodeScore}, {Name: "machine2", Score: framework.MaxNodeScore}}, name: "nothing scheduled, nothing requested", }, { - // Node1 scores on 0-10 scale - // CPU Score: ((4000 - 3000) *100) / 4000 = 25 - // Memory Score: ((10000 - 5000) *100) / 10000 = 50 + // Node1 scores on 0-MaxNodeScore scale + // CPU Score: ((4000 - 3000) * MaxNodeScore) / 4000 = 25 + // Memory Score: ((10000 - 5000) * MaxNodeScore) / 10000 = 50 // Node1 Score: (25 + 50) / 2 = 37 - // Node2 scores on 0-10 scale - // CPU Score: ((6000 - 3000) *100) / 6000 = 50 - // Memory Score: ((10000 - 5000) *100) / 10000 = 50 + // Node2 scores on 0-MaxNodeScore scale + // CPU Score: ((6000 - 3000) * MaxNodeScore) / 6000 = 50 + // Memory Score: ((10000 - 5000) * MaxNodeScore) / 10000 = 50 // Node2 Score: (50 + 50) / 2 = 50 pod: &v1.Pod{Spec: cpuAndMemory}, nodes: []*v1.Node{makeNode("machine1", 4000, 10000), makeNode("machine2", 6000, 10000)}, @@ -126,14 +126,14 @@ func TestNodeResourcesLeastAllocated(t *testing.T) { name: "nothing scheduled, resources requested, differently sized machines", }, { - // Node1 scores on 0-10 scale - // CPU Score: ((4000 - 0) *100) / 4000 = 100 - // Memory Score: ((10000 - 0) *100) / 10000 = 100 - // Node1 Score: (100 + 100) / 2 = 100 - // Node2 scores on 0-10 scale - // CPU Score: ((4000 - 0) *100) / 4000 = 100 - // Memory Score: ((10000 - 0) *100) / 10000 = 100 - // Node2 Score: (100 + 100) / 2 = 100 + // Node1 scores on 0-MaxNodeScore scale + // CPU Score: ((4000 - 0) * MaxNodeScore) / 4000 = MaxNodeScore + // Memory Score: ((10000 - 0) * MaxNodeScore) / 10000 = MaxNodeScore + // Node1 Score: (MaxNodeScore + MaxNodeScore) / 2 = MaxNodeScore + // Node2 scores on 0-MaxNodeScore scale + // CPU Score: ((4000 - 0) * MaxNodeScore) / 4000 = MaxNodeScore + // Memory Score: ((10000 - 0) * MaxNodeScore) / 10000 = MaxNodeScore + // Node2 Score: (MaxNodeScore + MaxNodeScore) / 2 = MaxNodeScore pod: &v1.Pod{Spec: noResources}, nodes: []*v1.Node{makeNode("machine1", 4000, 10000), makeNode("machine2", 4000, 10000)}, expectedList: []framework.NodeScore{{Name: "machine1", Score: framework.MaxNodeScore}, {Name: "machine2", Score: framework.MaxNodeScore}}, @@ -146,13 +146,13 @@ func TestNodeResourcesLeastAllocated(t *testing.T) { }, }, { - // Node1 scores on 0-10 scale - // CPU Score: ((10000 - 6000) *100) / 10000 = 40 - // Memory Score: ((20000 - 0) *100) / 20000 = 100 + // Node1 scores on 0-MaxNodeScore scale + // CPU Score: ((10000 - 6000) * MaxNodeScore) / 10000 = 40 + // Memory Score: ((20000 - 0) * MaxNodeScore) / 20000 = MaxNodeScore // Node1 Score: (40 + 100) / 2 = 70 - // Node2 scores on 0-10 scale - // CPU Score: ((10000 - 6000) *100) / 10000 = 40 - // Memory Score: ((20000 - 5000) *100) / 20000 = 75 + // Node2 scores on 0-MaxNodeScore scale + // CPU Score: ((10000 - 6000) * MaxNodeScore) / 10000 = 40 + // Memory Score: ((20000 - 5000) * MaxNodeScore) / 20000 = 75 // Node2 Score: (40 + 75) / 2 = 57 pod: &v1.Pod{Spec: noResources}, nodes: []*v1.Node{makeNode("machine1", 10000, 20000), makeNode("machine2", 10000, 20000)}, @@ -166,13 +166,13 @@ func TestNodeResourcesLeastAllocated(t *testing.T) { }, }, { - // Node1 scores on 0-10 scale - // CPU Score: ((10000 - 6000) *10) / 10000 = 40 - // Memory Score: ((20000 - 5000) *10) / 20000 = 75 + // Node1 scores on 0-MaxNodeScore scale + // CPU Score: ((10000 - 6000) * MaxNodeScore) / 10000 = 40 + // Memory Score: ((20000 - 5000) * MaxNodeScore) / 20000 = 75 // Node1 Score: (40 + 75) / 2 = 57 - // Node2 scores on 0-10 scale - // CPU Score: ((10000 - 6000) *100) / 10000 = 40 - // Memory Score: ((20000 - 10000) *100) / 20000 = 50 + // Node2 scores on 0-MaxNodeScore scale + // CPU Score: ((10000 - 6000) * MaxNodeScore) / 10000 = 40 + // Memory Score: ((20000 - 10000) * MaxNodeScore) / 20000 = 50 // Node2 Score: (40 + 50) / 2 = 45 pod: &v1.Pod{Spec: cpuAndMemory}, nodes: []*v1.Node{makeNode("machine1", 10000, 20000), makeNode("machine2", 10000, 20000)}, @@ -184,13 +184,13 @@ func TestNodeResourcesLeastAllocated(t *testing.T) { }, }, { - // Node1 scores on 0-10 scale - // CPU Score: ((10000 - 6000) *100) / 10000 = 40 - // Memory Score: ((20000 - 5000) *100) / 20000 = 75 + // Node1 scores on 0-MaxNodeScore scale + // CPU Score: ((10000 - 6000) * MaxNodeScore) / 10000 = 40 + // Memory Score: ((20000 - 5000) * MaxNodeScore) / 20000 = 75 // Node1 Score: (40 + 75) / 2 = 57 - // Node2 scores on 0-10 scale - // CPU Score: ((10000 - 6000) *100) / 10000 = 40 - // Memory Score: ((50000 - 10000) *100) / 50000 = 80 + // Node2 scores on 0-MaxNodeScore scale + // CPU Score: ((10000 - 6000) * MaxNodeScore) / 10000 = 40 + // Memory Score: ((50000 - 10000) * MaxNodeScore) / 50000 = 80 // Node2 Score: (40 + 80) / 2 = 60 pod: &v1.Pod{Spec: cpuAndMemory}, nodes: []*v1.Node{makeNode("machine1", 10000, 20000), makeNode("machine2", 10000, 50000)}, @@ -202,13 +202,13 @@ func TestNodeResourcesLeastAllocated(t *testing.T) { }, }, { - // Node1 scores on 0-10 scale - // CPU Score: ((4000 - 6000) *100) / 4000 = 0 - // Memory Score: ((10000 - 0) *100) / 10000 = 100 - // Node1 Score: (0 + 100) / 2 = 50 - // Node2 scores on 0-10 scale - // CPU Score: ((4000 - 6000) *100) / 4000 = 0 - // Memory Score: ((10000 - 5000) *100) / 10000 = 50 + // Node1 scores on 0-MaxNodeScore scale + // CPU Score: ((4000 - 6000) * MaxNodeScore) / 4000 = 0 + // Memory Score: ((10000 - 0) * MaxNodeScore) / 10000 = MaxNodeScore + // Node1 Score: (0 + MaxNodeScore) / 2 = 50 + // Node2 scores on 0-MaxNodeScore scale + // CPU Score: ((4000 - 6000) * MaxNodeScore) / 4000 = 0 + // Memory Score: ((10000 - 5000) * MaxNodeScore) / 10000 = 50 // Node2 Score: (0 + 50) / 2 = 25 pod: &v1.Pod{Spec: cpuOnly}, nodes: []*v1.Node{makeNode("machine1", 4000, 10000), makeNode("machine2", 4000, 10000)}, diff --git a/pkg/scheduler/framework/plugins/noderesources/most_allocated.go b/pkg/scheduler/framework/plugins/noderesources/most_allocated.go index 9f30c29fe1c8d..83dadad2b0635 100644 --- a/pkg/scheduler/framework/plugins/noderesources/most_allocated.go +++ b/pkg/scheduler/framework/plugins/noderesources/most_allocated.go @@ -51,7 +51,7 @@ func (ma *MostAllocated) Score(ctx context.Context, state *framework.CycleState, // ma.score favors nodes with most requested resources. // It calculates the percentage of memory and CPU requested by pods scheduled on the node, and prioritizes // based on the maximum of the average of the fraction of requested to capacity. - // Details: (cpu(10 * sum(requested) / capacity) + memory(10 * sum(requested) / capacity)) / 2 + // Details: (cpu(MaxNodeScore * sum(requested) / capacity) + memory(MaxNodeScore * sum(requested) / capacity)) / weightSum return ma.score(pod, nodeInfo) } @@ -83,13 +83,11 @@ func mostResourceScorer(requested, allocable resourceToValueMap, includeVolumes } -// The used capacity is calculated on a scale of 0-10 -// 0 being the lowest priority and 10 being the highest. +// The used capacity is calculated on a scale of 0-MaxNodeScore (MaxNodeScore is +// constant with value set to 100). +// 0 being the lowest priority and 100 being the highest. // The more resources are used the higher the score is. This function -// is almost a reversed version of least_requested_priority.calculateUnusedScore -// (10 - calculateUnusedScore). The main difference is in rounding. It was added to -// keep the final formula clean and not to modify the widely used (by users -// in their default scheduling policies) calculateUsedScore. +// is almost a reversed version of noderesources.leastRequestedScore. func mostRequestedScore(requested, capacity int64) int64 { if capacity == 0 { return 0 diff --git a/pkg/scheduler/framework/plugins/noderesources/most_allocated_test.go b/pkg/scheduler/framework/plugins/noderesources/most_allocated_test.go index 2ebbfeff3c104..a7c97de12fd85 100644 --- a/pkg/scheduler/framework/plugins/noderesources/most_allocated_test.go +++ b/pkg/scheduler/framework/plugins/noderesources/most_allocated_test.go @@ -113,13 +113,13 @@ func TestNodeResourcesMostAllocated(t *testing.T) { name string }{ { - // Node1 scores (used resources) on 0-10 scale - // CPU Score: (0 * 100) / 4000 = 0 - // Memory Score: (0 * 100) / 10000 = 0 + // Node1 scores (used resources) on 0-MaxNodeScore scale + // CPU Score: (0 * MaxNodeScore) / 4000 = 0 + // Memory Score: (0 * MaxNodeScore) / 10000 = 0 // Node1 Score: (0 + 0) / 2 = 0 - // Node2 scores (used resources) on 0-10 scale - // CPU Score: (0 * 100) / 4000 = 0 - // Memory Score: (0 * 100) / 10000 = 0 + // Node2 scores (used resources) on 0-MaxNodeScore scale + // CPU Score: (0 * MaxNodeScore) / 4000 = 0 + // Memory Score: (0 * MaxNodeScore) / 10000 = 0 // Node2 Score: (0 + 0) / 2 = 0 pod: &v1.Pod{Spec: noResources}, nodes: []*v1.Node{makeNode("machine1", 4000, 10000), makeNode("machine2", 4000, 10000)}, @@ -127,13 +127,13 @@ func TestNodeResourcesMostAllocated(t *testing.T) { name: "nothing scheduled, nothing requested", }, { - // Node1 scores on 0-10 scale - // CPU Score: (3000 * 100) / 4000 = 75 - // Memory Score: (5000 * 100) / 10000 = 50 + // Node1 scores on 0-MaxNodeScore scale + // CPU Score: (3000 * MaxNodeScore) / 4000 = 75 + // Memory Score: (5000 * MaxNodeScore) / 10000 = 50 // Node1 Score: (75 + 50) / 2 = 6 - // Node2 scores on 0-10 scale - // CPU Score: (3000 * 100) / 6000 = 50 - // Memory Score: (5000 * 100) / 10000 = 50 + // Node2 scores on 0-MaxNodeScore scale + // CPU Score: (3000 * MaxNodeScore) / 6000 = 50 + // Memory Score: (5000 * MaxNodeScore) / 10000 = 50 // Node2 Score: (50 + 50) / 2 = 50 pod: &v1.Pod{Spec: cpuAndMemory}, nodes: []*v1.Node{makeNode("machine1", 4000, 10000), makeNode("machine2", 6000, 10000)}, @@ -141,13 +141,13 @@ func TestNodeResourcesMostAllocated(t *testing.T) { name: "nothing scheduled, resources requested, differently sized machines", }, { - // Node1 scores on 0-10 scale - // CPU Score: (6000 * 100) / 10000 = 60 - // Memory Score: (0 * 100) / 20000 = 100 + // Node1 scores on 0-MaxNodeScore scale + // CPU Score: (6000 * MaxNodeScore) / 10000 = 60 + // Memory Score: (0 * MaxNodeScore) / 20000 = 0 // Node1 Score: (60 + 0) / 2 = 30 - // Node2 scores on 0-10 scale - // CPU Score: (6000 * 100) / 10000 = 60 - // Memory Score: (5000 * 100) / 20000 = 25 + // Node2 scores on 0-MaxNodeScore scale + // CPU Score: (6000 * MaxNodeScore) / 10000 = 60 + // Memory Score: (5000 * MaxNodeScore) / 20000 = 25 // Node2 Score: (60 + 25) / 2 = 42 pod: &v1.Pod{Spec: noResources}, nodes: []*v1.Node{makeNode("machine1", 10000, 20000), makeNode("machine2", 10000, 20000)}, @@ -161,13 +161,13 @@ func TestNodeResourcesMostAllocated(t *testing.T) { }, }, { - // Node1 scores on 0-10 scale - // CPU Score: (6000 * 100) / 10000 = 60 - // Memory Score: (5000 * 100) / 20000 = 25 + // Node1 scores on 0-MaxNodeScore scale + // CPU Score: (6000 * MaxNodeScore) / 10000 = 60 + // Memory Score: (5000 * MaxNodeScore) / 20000 = 25 // Node1 Score: (60 + 25) / 2 = 42 - // Node2 scores on 0-10 scale - // CPU Score: (6000 * 100) / 10000 = 60 - // Memory Score: (10000 * 100) / 20000 = 50 + // Node2 scores on 0-MaxNodeScore scale + // CPU Score: (6000 * MaxNodeScore) / 10000 = 60 + // Memory Score: (10000 * MaxNodeScore) / 20000 = 50 // Node2 Score: (60 + 50) / 2 = 55 pod: &v1.Pod{Spec: cpuAndMemory}, nodes: []*v1.Node{makeNode("machine1", 10000, 20000), makeNode("machine2", 10000, 20000)}, @@ -179,12 +179,12 @@ func TestNodeResourcesMostAllocated(t *testing.T) { }, }, { - // Node1 scores on 0-10 scale + // Node1 scores on 0-MaxNodeScore scale // CPU Score: 5000 > 4000 return 0 - // Memory Score: (9000 * 100) / 10000 = 90 + // Memory Score: (9000 * MaxNodeScore) / 10000 = 90 // Node1 Score: (0 + 90) / 2 = 45 - // Node2 scores on 0-10 scale - // CPU Score: (5000 * 100) / 10000 = 50 + // Node2 scores on 0-MaxNodeScore scale + // CPU Score: (5000 * MaxNodeScore) / 10000 = 50 // Memory Score: 9000 > 8000 return 0 // Node2 Score: (50 + 0) / 2 = 25 pod: &v1.Pod{Spec: bigCPUAndMemory}, diff --git a/pkg/scheduler/framework/plugins/noderesources/requested_to_capacity_ratio_test.go b/pkg/scheduler/framework/plugins/noderesources/requested_to_capacity_ratio_test.go index 2519fcbf09b13..d8288f697545d 100644 --- a/pkg/scheduler/framework/plugins/noderesources/requested_to_capacity_ratio_test.go +++ b/pkg/scheduler/framework/plugins/noderesources/requested_to_capacity_ratio_test.go @@ -267,16 +267,16 @@ func TestResourceBinPackingSingleExtended(t *testing.T) { }{ { - // Node1 scores (used resources) on 0-10 scale + // Node1 scores (used resources) on 0-MaxNodeScore scale // Node1 Score: // rawScoringFunction(used + requested / available) // resourceScoringFunction((0+0),8) - // = 100 - (8-0)*(100/8) = 0 = rawScoringFunction(0) + // = maxUtilization - (8-0)*(maxUtilization/8) = 0 = rawScoringFunction(0) // Node1 Score: 0 - // Node2 scores (used resources) on 0-10 scale + // Node2 scores (used resources) on 0-MaxNodeScore scale // rawScoringFunction(used + requested / available) // resourceScoringFunction((0+0),4) - // = 100 - (4-0)*(100/4) = 0 = rawScoringFunction(0) + // = maxUtilization - (4-0)*(maxUtilization/4) = 0 = rawScoringFunction(0) // Node2 Score: 0 pod: &v1.Pod{Spec: noResources}, @@ -287,16 +287,16 @@ func TestResourceBinPackingSingleExtended(t *testing.T) { { - // Node1 scores (used resources) on 0-10 scale + // Node1 scores (used resources) on 0-MaxNodeScore scale // Node1 Score: // rawScoringFunction(used + requested / available) // resourceScoringFunction((0+2),8) - // = 100 - (8-2)*(100/8) = 25 = rawScoringFunction(25) + // = maxUtilization - (8-2)*(maxUtilization/8) = 25 = rawScoringFunction(25) // Node1 Score: 2 - // Node2 scores (used resources) on 0-10 scale + // Node2 scores (used resources) on 0-MaxNodeScore scale // rawScoringFunction(used + requested / available) // resourceScoringFunction((0+2),4) - // = 100 - (4-2)*(100/4) = 50 = rawScoringFunction(50) + // = maxUtilization - (4-2)*(maxUtilization/4) = 50 = rawScoringFunction(50) // Node2 Score: 5 pod: &v1.Pod{Spec: extendedResourcePod1}, @@ -310,16 +310,16 @@ func TestResourceBinPackingSingleExtended(t *testing.T) { { - // Node1 scores (used resources) on 0-10 scale + // Node1 scores (used resources) on 0-MaxNodeScore scale // Node1 Score: // rawScoringFunction(used + requested / available) // resourceScoringFunction((0+2),8) - // = 100 - (8-2)*(100/8) = 25 =rawScoringFunction(25) + // = maxUtilization - (8-2)*(maxUtilization/8) = 25 = rawScoringFunction(25) // Node1 Score: 2 - // Node2 scores (used resources) on 0-10 scale + // Node2 scores (used resources) on 0-MaxNodeScore scale // rawScoringFunction(used + requested / available) // resourceScoringFunction((2+2),4) - // = 100 - (4-4)*(100/4) = 100 = rawScoringFunction(100) + // = maxUtilization - (4-4)*(maxUtilization/4) = maxUtilization = rawScoringFunction(maxUtilization) // Node2 Score: 10 pod: &v1.Pod{Spec: extendedResourcePod1}, @@ -333,16 +333,16 @@ func TestResourceBinPackingSingleExtended(t *testing.T) { { - // Node1 scores (used resources) on 0-10 scale + // Node1 scores (used resources) on 0-MaxNodeScore scale // Node1 Score: // rawScoringFunction(used + requested / available) // resourceScoringFunction((0+4),8) - // = 100 - (8-4)*(100/8) = 50 = rawScoringFunction(50) + // = maxUtilization - (8-4)*(maxUtilization/8) = 50 = rawScoringFunction(50) // Node1 Score: 5 - // Node2 scores (used resources) on 0-10 scale + // Node2 scores (used resources) on 0-MaxNodeScore scale // rawScoringFunction(used + requested / available) // resourceScoringFunction((0+4),4) - // = 100 - (4-4)*(100/4) = 100 = rawScoringFunction(100) + // = maxUtilization - (4-4)*(maxUtilization/4) = maxUtilization = rawScoringFunction(maxUtilization) // Node2 Score: 10 pod: &v1.Pod{Spec: extendedResourcePod2},