Fix nits in comments for NodeResources plugins

This commit is contained in:
Dave Chen 2020-05-12 17:44:41 +08:00
parent 1cad79ee2e
commit 6b9fb2c591
5 changed files with 121 additions and 123 deletions

View File

@ -220,42 +220,42 @@ func TestNodeResourcesBalancedAllocation(t *testing.T) {
name string name string
}{ }{
{ {
// Node1 scores (remaining resources) on 0-10 scale // Node1 scores (remaining resources) on 0-MaxNodeScore scale
// CPU Fraction: 0 / 4000 = 0% // CPU Fraction: 0 / 4000 = 0%
// Memory Fraction: 0 / 10000 = 0% // Memory Fraction: 0 / 10000 = 0%
// Node1 Score: 10 - (0-0)*100 = 100 // Node1 Score: MaxNodeScore - (0-0)*MaxNodeScore = MaxNodeScore
// Node2 scores (remaining resources) on 0-10 scale // Node2 scores (remaining resources) on 0-MaxNodeScore scale
// CPU Fraction: 0 / 4000 = 0 % // CPU Fraction: 0 / 4000 = 0 %
// Memory Fraction: 0 / 10000 = 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}, pod: &v1.Pod{Spec: noResources},
nodes: []*v1.Node{makeNode("machine1", 4000, 10000), makeNode("machine2", 4000, 10000)}, nodes: []*v1.Node{makeNode("machine1", 4000, 10000), makeNode("machine2", 4000, 10000)},
expectedList: []framework.NodeScore{{Name: "machine1", Score: framework.MaxNodeScore}, {Name: "machine2", Score: framework.MaxNodeScore}}, expectedList: []framework.NodeScore{{Name: "machine1", Score: framework.MaxNodeScore}, {Name: "machine2", Score: framework.MaxNodeScore}},
name: "nothing scheduled, nothing requested", name: "nothing scheduled, nothing requested",
}, },
{ {
// Node1 scores on 0-10 scale // Node1 scores on 0-MaxNodeScore scale
// CPU Fraction: 3000 / 4000= 75% // CPU Fraction: 3000 / 4000= 75%
// Memory Fraction: 5000 / 10000 = 50% // Memory Fraction: 5000 / 10000 = 50%
// Node1 Score: 10 - (0.75-0.5)*100 = 75 // Node1 Score: MaxNodeScore - (0.75-0.5)*MaxNodeScore = 75
// Node2 scores on 0-10 scale // Node2 scores on 0-MaxNodeScore scale
// CPU Fraction: 3000 / 6000= 50% // CPU Fraction: 3000 / 6000= 50%
// Memory Fraction: 5000/10000 = 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}, pod: &v1.Pod{Spec: cpuAndMemory},
nodes: []*v1.Node{makeNode("machine1", 4000, 10000), makeNode("machine2", 6000, 10000)}, nodes: []*v1.Node{makeNode("machine1", 4000, 10000), makeNode("machine2", 6000, 10000)},
expectedList: []framework.NodeScore{{Name: "machine1", Score: 75}, {Name: "machine2", Score: framework.MaxNodeScore}}, expectedList: []framework.NodeScore{{Name: "machine1", Score: 75}, {Name: "machine2", Score: framework.MaxNodeScore}},
name: "nothing scheduled, resources requested, differently sized machines", 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% // CPU Fraction: 0 / 4000= 0%
// Memory Fraction: 0 / 10000 = 0% // Memory Fraction: 0 / 10000 = 0%
// Node1 Score: 10 - (0-0)*100 = 100 // Node1 Score: MaxNodeScore - (0-0)*MaxNodeScore = MaxNodeScore
// Node2 scores on 0-10 scale // Node2 scores on 0-MaxNodeScore scale
// CPU Fraction: 0 / 4000= 0% // CPU Fraction: 0 / 4000= 0%
// Memory Fraction: 0 / 10000 = 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}, pod: &v1.Pod{Spec: noResources},
nodes: []*v1.Node{makeNode("machine1", 4000, 10000), makeNode("machine2", 4000, 10000)}, nodes: []*v1.Node{makeNode("machine1", 4000, 10000), makeNode("machine2", 4000, 10000)},
expectedList: []framework.NodeScore{{Name: "machine1", Score: framework.MaxNodeScore}, {Name: "machine2", Score: framework.MaxNodeScore}}, 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% // CPU Fraction: 6000 / 10000 = 60%
// Memory Fraction: 0 / 20000 = 0% // Memory Fraction: 0 / 20000 = 0%
// Node1 Score: 10 - (0.6-0)*100 = 40 // Node1 Score: MaxNodeScore - (0.6-0)*MaxNodeScore = 40
// Node2 scores on 0-10 scale // Node2 scores on 0-MaxNodeScore scale
// CPU Fraction: 6000 / 10000 = 60% // CPU Fraction: 6000 / 10000 = 60%
// Memory Fraction: 5000 / 20000 = 25% // 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}, pod: &v1.Pod{Spec: noResources},
nodes: []*v1.Node{makeNode("machine1", 10000, 20000), makeNode("machine2", 10000, 20000)}, nodes: []*v1.Node{makeNode("machine1", 10000, 20000), makeNode("machine2", 10000, 20000)},
expectedList: []framework.NodeScore{{Name: "machine1", Score: 40}, {Name: "machine2", Score: 65}}, 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% // CPU Fraction: 6000 / 10000 = 60%
// Memory Fraction: 5000 / 20000 = 25% // Memory Fraction: 5000 / 20000 = 25%
// Node1 Score: 10 - (0.6-0.25)*100 = 65 // Node1 Score: MaxNodeScore - (0.6-0.25)*MaxNodeScore = 65
// Node2 scores on 0-10 scale // Node2 scores on 0-MaxNodeScore scale
// CPU Fraction: 6000 / 10000 = 60% // CPU Fraction: 6000 / 10000 = 60%
// Memory Fraction: 10000 / 20000 = 50% // 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}, pod: &v1.Pod{Spec: cpuAndMemory},
nodes: []*v1.Node{makeNode("machine1", 10000, 20000), makeNode("machine2", 10000, 20000)}, nodes: []*v1.Node{makeNode("machine1", 10000, 20000), makeNode("machine2", 10000, 20000)},
expectedList: []framework.NodeScore{{Name: "machine1", Score: 65}, {Name: "machine2", Score: 90}}, 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% // CPU Fraction: 6000 / 10000 = 60%
// Memory Fraction: 5000 / 20000 = 25% // Memory Fraction: 5000 / 20000 = 25%
// Node1 Score: 10 - (0.6-0.25)*100 = 65 // Node1 Score: MaxNodeScore - (0.6-0.25)*MaxNodeScore = 65
// Node2 scores on 0-10 scale // Node2 scores on 0-MaxNodeScore scale
// CPU Fraction: 6000 / 10000 = 60% // CPU Fraction: 6000 / 10000 = 60%
// Memory Fraction: 10000 / 50000 = 20% // 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}, pod: &v1.Pod{Spec: cpuAndMemory},
nodes: []*v1.Node{makeNode("machine1", 10000, 20000), makeNode("machine2", 10000, 50000)}, nodes: []*v1.Node{makeNode("machine1", 10000, 20000), makeNode("machine2", 10000, 50000)},
expectedList: []framework.NodeScore{{Name: "machine1", Score: 65}, {Name: "machine2", Score: 60}}, 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 // CPU Fraction: 6000 / 4000 > 100% ==> Score := 0
// Memory Fraction: 0 / 10000 = 0 // Memory Fraction: 0 / 10000 = 0
// Node1 Score: 0 // Node1 Score: 0
// Node2 scores on 0-10 scale // Node2 scores on 0-MaxNodeScore scale
// CPU Fraction: 6000 / 4000 > 100% ==> Score := 0 // CPU Fraction: 6000 / 4000 > 100% ==> Score := 0
// Memory Fraction 5000 / 10000 = 50% // Memory Fraction 5000 / 10000 = 50%
// Node2 Score: 0 // Node2 Score: 0

View File

@ -98,27 +98,27 @@ func TestNodeResourcesLeastAllocated(t *testing.T) {
name string name string
}{ }{
{ {
// Node1 scores (remaining resources) on 0-10 scale // Node1 scores (remaining resources) on 0-MaxNodeScore scale
// CPU Score: ((4000 - 0) *100) / 4000 = 100 // CPU Score: ((4000 - 0) * MaxNodeScore) / 4000 = MaxNodeScore
// Memory Score: ((10000 - 0) *100) / 10000 = 100 // Memory Score: ((10000 - 0) * MaxNodeScore) / 10000 = MaxNodeScore
// Node1 Score: (100 + 100) / 2 = 100 // Node1 Score: (100 + 100) / 2 = 100
// Node2 scores (remaining resources) on 0-10 scale // Node2 scores (remaining resources) on 0-MaxNodeScore scale
// CPU Score: ((4000 - 0) *100) / 4000 = 100 // CPU Score: ((4000 - 0) * MaxNodeScore) / 4000 = MaxNodeScore
// Memory Score: ((10000 - 0) *10) / 10000 = 100 // Memory Score: ((10000 - 0) * MaxNodeScore) / 10000 = MaxNodeScore
// Node2 Score: (100 + 100) / 2 = 100 // Node2 Score: (MaxNodeScore + MaxNodeScore) / 2 = MaxNodeScore
pod: &v1.Pod{Spec: noResources}, pod: &v1.Pod{Spec: noResources},
nodes: []*v1.Node{makeNode("machine1", 4000, 10000), makeNode("machine2", 4000, 10000)}, nodes: []*v1.Node{makeNode("machine1", 4000, 10000), makeNode("machine2", 4000, 10000)},
expectedList: []framework.NodeScore{{Name: "machine1", Score: framework.MaxNodeScore}, {Name: "machine2", Score: framework.MaxNodeScore}}, expectedList: []framework.NodeScore{{Name: "machine1", Score: framework.MaxNodeScore}, {Name: "machine2", Score: framework.MaxNodeScore}},
name: "nothing scheduled, nothing requested", name: "nothing scheduled, nothing requested",
}, },
{ {
// Node1 scores on 0-10 scale // Node1 scores on 0-MaxNodeScore scale
// CPU Score: ((4000 - 3000) *100) / 4000 = 25 // CPU Score: ((4000 - 3000) * MaxNodeScore) / 4000 = 25
// Memory Score: ((10000 - 5000) *100) / 10000 = 50 // Memory Score: ((10000 - 5000) * MaxNodeScore) / 10000 = 50
// Node1 Score: (25 + 50) / 2 = 37 // Node1 Score: (25 + 50) / 2 = 37
// Node2 scores on 0-10 scale // Node2 scores on 0-MaxNodeScore scale
// CPU Score: ((6000 - 3000) *100) / 6000 = 50 // CPU Score: ((6000 - 3000) * MaxNodeScore) / 6000 = 50
// Memory Score: ((10000 - 5000) *100) / 10000 = 50 // Memory Score: ((10000 - 5000) * MaxNodeScore) / 10000 = 50
// Node2 Score: (50 + 50) / 2 = 50 // Node2 Score: (50 + 50) / 2 = 50
pod: &v1.Pod{Spec: cpuAndMemory}, pod: &v1.Pod{Spec: cpuAndMemory},
nodes: []*v1.Node{makeNode("machine1", 4000, 10000), makeNode("machine2", 6000, 10000)}, 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", name: "nothing scheduled, resources requested, differently sized machines",
}, },
{ {
// Node1 scores on 0-10 scale // Node1 scores on 0-MaxNodeScore scale
// CPU Score: ((4000 - 0) *100) / 4000 = 100 // CPU Score: ((4000 - 0) * MaxNodeScore) / 4000 = MaxNodeScore
// Memory Score: ((10000 - 0) *100) / 10000 = 100 // Memory Score: ((10000 - 0) * MaxNodeScore) / 10000 = MaxNodeScore
// Node1 Score: (100 + 100) / 2 = 100 // Node1 Score: (MaxNodeScore + MaxNodeScore) / 2 = MaxNodeScore
// Node2 scores on 0-10 scale // Node2 scores on 0-MaxNodeScore scale
// CPU Score: ((4000 - 0) *100) / 4000 = 100 // CPU Score: ((4000 - 0) * MaxNodeScore) / 4000 = MaxNodeScore
// Memory Score: ((10000 - 0) *100) / 10000 = 100 // Memory Score: ((10000 - 0) * MaxNodeScore) / 10000 = MaxNodeScore
// Node2 Score: (100 + 100) / 2 = 100 // Node2 Score: (MaxNodeScore + MaxNodeScore) / 2 = MaxNodeScore
pod: &v1.Pod{Spec: noResources}, pod: &v1.Pod{Spec: noResources},
nodes: []*v1.Node{makeNode("machine1", 4000, 10000), makeNode("machine2", 4000, 10000)}, nodes: []*v1.Node{makeNode("machine1", 4000, 10000), makeNode("machine2", 4000, 10000)},
expectedList: []framework.NodeScore{{Name: "machine1", Score: framework.MaxNodeScore}, {Name: "machine2", Score: framework.MaxNodeScore}}, 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 // Node1 scores on 0-MaxNodeScore scale
// CPU Score: ((10000 - 6000) *100) / 10000 = 40 // CPU Score: ((10000 - 6000) * MaxNodeScore) / 10000 = 40
// Memory Score: ((20000 - 0) *100) / 20000 = 100 // Memory Score: ((20000 - 0) * MaxNodeScore) / 20000 = MaxNodeScore
// Node1 Score: (40 + 100) / 2 = 70 // Node1 Score: (40 + 100) / 2 = 70
// Node2 scores on 0-10 scale // Node2 scores on 0-MaxNodeScore scale
// CPU Score: ((10000 - 6000) *100) / 10000 = 40 // CPU Score: ((10000 - 6000) * MaxNodeScore) / 10000 = 40
// Memory Score: ((20000 - 5000) *100) / 20000 = 75 // Memory Score: ((20000 - 5000) * MaxNodeScore) / 20000 = 75
// Node2 Score: (40 + 75) / 2 = 57 // Node2 Score: (40 + 75) / 2 = 57
pod: &v1.Pod{Spec: noResources}, pod: &v1.Pod{Spec: noResources},
nodes: []*v1.Node{makeNode("machine1", 10000, 20000), makeNode("machine2", 10000, 20000)}, 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 // Node1 scores on 0-MaxNodeScore scale
// CPU Score: ((10000 - 6000) *10) / 10000 = 40 // CPU Score: ((10000 - 6000) * MaxNodeScore) / 10000 = 40
// Memory Score: ((20000 - 5000) *10) / 20000 = 75 // Memory Score: ((20000 - 5000) * MaxNodeScore) / 20000 = 75
// Node1 Score: (40 + 75) / 2 = 57 // Node1 Score: (40 + 75) / 2 = 57
// Node2 scores on 0-10 scale // Node2 scores on 0-MaxNodeScore scale
// CPU Score: ((10000 - 6000) *100) / 10000 = 40 // CPU Score: ((10000 - 6000) * MaxNodeScore) / 10000 = 40
// Memory Score: ((20000 - 10000) *100) / 20000 = 50 // Memory Score: ((20000 - 10000) * MaxNodeScore) / 20000 = 50
// Node2 Score: (40 + 50) / 2 = 45 // Node2 Score: (40 + 50) / 2 = 45
pod: &v1.Pod{Spec: cpuAndMemory}, pod: &v1.Pod{Spec: cpuAndMemory},
nodes: []*v1.Node{makeNode("machine1", 10000, 20000), makeNode("machine2", 10000, 20000)}, 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 // Node1 scores on 0-MaxNodeScore scale
// CPU Score: ((10000 - 6000) *100) / 10000 = 40 // CPU Score: ((10000 - 6000) * MaxNodeScore) / 10000 = 40
// Memory Score: ((20000 - 5000) *100) / 20000 = 75 // Memory Score: ((20000 - 5000) * MaxNodeScore) / 20000 = 75
// Node1 Score: (40 + 75) / 2 = 57 // Node1 Score: (40 + 75) / 2 = 57
// Node2 scores on 0-10 scale // Node2 scores on 0-MaxNodeScore scale
// CPU Score: ((10000 - 6000) *100) / 10000 = 40 // CPU Score: ((10000 - 6000) * MaxNodeScore) / 10000 = 40
// Memory Score: ((50000 - 10000) *100) / 50000 = 80 // Memory Score: ((50000 - 10000) * MaxNodeScore) / 50000 = 80
// Node2 Score: (40 + 80) / 2 = 60 // Node2 Score: (40 + 80) / 2 = 60
pod: &v1.Pod{Spec: cpuAndMemory}, pod: &v1.Pod{Spec: cpuAndMemory},
nodes: []*v1.Node{makeNode("machine1", 10000, 20000), makeNode("machine2", 10000, 50000)}, 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 // Node1 scores on 0-MaxNodeScore scale
// CPU Score: ((4000 - 6000) *100) / 4000 = 0 // CPU Score: ((4000 - 6000) * MaxNodeScore) / 4000 = 0
// Memory Score: ((10000 - 0) *100) / 10000 = 100 // Memory Score: ((10000 - 0) * MaxNodeScore) / 10000 = MaxNodeScore
// Node1 Score: (0 + 100) / 2 = 50 // Node1 Score: (0 + MaxNodeScore) / 2 = 50
// Node2 scores on 0-10 scale // Node2 scores on 0-MaxNodeScore scale
// CPU Score: ((4000 - 6000) *100) / 4000 = 0 // CPU Score: ((4000 - 6000) * MaxNodeScore) / 4000 = 0
// Memory Score: ((10000 - 5000) *100) / 10000 = 50 // Memory Score: ((10000 - 5000) * MaxNodeScore) / 10000 = 50
// Node2 Score: (0 + 50) / 2 = 25 // Node2 Score: (0 + 50) / 2 = 25
pod: &v1.Pod{Spec: cpuOnly}, pod: &v1.Pod{Spec: cpuOnly},
nodes: []*v1.Node{makeNode("machine1", 4000, 10000), makeNode("machine2", 4000, 10000)}, nodes: []*v1.Node{makeNode("machine1", 4000, 10000), makeNode("machine2", 4000, 10000)},

View File

@ -51,7 +51,7 @@ func (ma *MostAllocated) Score(ctx context.Context, state *framework.CycleState,
// ma.score favors nodes with most requested resources. // 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 // 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. // 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) 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 // The used capacity is calculated on a scale of 0-MaxNodeScore (MaxNodeScore is
// 0 being the lowest priority and 10 being the highest. // 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 // The more resources are used the higher the score is. This function
// is almost a reversed version of least_requested_priority.calculateUnusedScore // is almost a reversed version of noderesources.leastRequestedScore.
// (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.
func mostRequestedScore(requested, capacity int64) int64 { func mostRequestedScore(requested, capacity int64) int64 {
if capacity == 0 { if capacity == 0 {
return 0 return 0

View File

@ -113,13 +113,13 @@ func TestNodeResourcesMostAllocated(t *testing.T) {
name string name string
}{ }{
{ {
// Node1 scores (used resources) on 0-10 scale // Node1 scores (used resources) on 0-MaxNodeScore scale
// CPU Score: (0 * 100) / 4000 = 0 // CPU Score: (0 * MaxNodeScore) / 4000 = 0
// Memory Score: (0 * 100) / 10000 = 0 // Memory Score: (0 * MaxNodeScore) / 10000 = 0
// Node1 Score: (0 + 0) / 2 = 0 // Node1 Score: (0 + 0) / 2 = 0
// Node2 scores (used resources) on 0-10 scale // Node2 scores (used resources) on 0-MaxNodeScore scale
// CPU Score: (0 * 100) / 4000 = 0 // CPU Score: (0 * MaxNodeScore) / 4000 = 0
// Memory Score: (0 * 100) / 10000 = 0 // Memory Score: (0 * MaxNodeScore) / 10000 = 0
// Node2 Score: (0 + 0) / 2 = 0 // Node2 Score: (0 + 0) / 2 = 0
pod: &v1.Pod{Spec: noResources}, pod: &v1.Pod{Spec: noResources},
nodes: []*v1.Node{makeNode("machine1", 4000, 10000), makeNode("machine2", 4000, 10000)}, 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", name: "nothing scheduled, nothing requested",
}, },
{ {
// Node1 scores on 0-10 scale // Node1 scores on 0-MaxNodeScore scale
// CPU Score: (3000 * 100) / 4000 = 75 // CPU Score: (3000 * MaxNodeScore) / 4000 = 75
// Memory Score: (5000 * 100) / 10000 = 50 // Memory Score: (5000 * MaxNodeScore) / 10000 = 50
// Node1 Score: (75 + 50) / 2 = 6 // Node1 Score: (75 + 50) / 2 = 6
// Node2 scores on 0-10 scale // Node2 scores on 0-MaxNodeScore scale
// CPU Score: (3000 * 100) / 6000 = 50 // CPU Score: (3000 * MaxNodeScore) / 6000 = 50
// Memory Score: (5000 * 100) / 10000 = 50 // Memory Score: (5000 * MaxNodeScore) / 10000 = 50
// Node2 Score: (50 + 50) / 2 = 50 // Node2 Score: (50 + 50) / 2 = 50
pod: &v1.Pod{Spec: cpuAndMemory}, pod: &v1.Pod{Spec: cpuAndMemory},
nodes: []*v1.Node{makeNode("machine1", 4000, 10000), makeNode("machine2", 6000, 10000)}, 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", name: "nothing scheduled, resources requested, differently sized machines",
}, },
{ {
// Node1 scores on 0-10 scale // Node1 scores on 0-MaxNodeScore scale
// CPU Score: (6000 * 100) / 10000 = 60 // CPU Score: (6000 * MaxNodeScore) / 10000 = 60
// Memory Score: (0 * 100) / 20000 = 100 // Memory Score: (0 * MaxNodeScore) / 20000 = 0
// Node1 Score: (60 + 0) / 2 = 30 // Node1 Score: (60 + 0) / 2 = 30
// Node2 scores on 0-10 scale // Node2 scores on 0-MaxNodeScore scale
// CPU Score: (6000 * 100) / 10000 = 60 // CPU Score: (6000 * MaxNodeScore) / 10000 = 60
// Memory Score: (5000 * 100) / 20000 = 25 // Memory Score: (5000 * MaxNodeScore) / 20000 = 25
// Node2 Score: (60 + 25) / 2 = 42 // Node2 Score: (60 + 25) / 2 = 42
pod: &v1.Pod{Spec: noResources}, pod: &v1.Pod{Spec: noResources},
nodes: []*v1.Node{makeNode("machine1", 10000, 20000), makeNode("machine2", 10000, 20000)}, 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 // Node1 scores on 0-MaxNodeScore scale
// CPU Score: (6000 * 100) / 10000 = 60 // CPU Score: (6000 * MaxNodeScore) / 10000 = 60
// Memory Score: (5000 * 100) / 20000 = 25 // Memory Score: (5000 * MaxNodeScore) / 20000 = 25
// Node1 Score: (60 + 25) / 2 = 42 // Node1 Score: (60 + 25) / 2 = 42
// Node2 scores on 0-10 scale // Node2 scores on 0-MaxNodeScore scale
// CPU Score: (6000 * 100) / 10000 = 60 // CPU Score: (6000 * MaxNodeScore) / 10000 = 60
// Memory Score: (10000 * 100) / 20000 = 50 // Memory Score: (10000 * MaxNodeScore) / 20000 = 50
// Node2 Score: (60 + 50) / 2 = 55 // Node2 Score: (60 + 50) / 2 = 55
pod: &v1.Pod{Spec: cpuAndMemory}, pod: &v1.Pod{Spec: cpuAndMemory},
nodes: []*v1.Node{makeNode("machine1", 10000, 20000), makeNode("machine2", 10000, 20000)}, 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 // CPU Score: 5000 > 4000 return 0
// Memory Score: (9000 * 100) / 10000 = 90 // Memory Score: (9000 * MaxNodeScore) / 10000 = 90
// Node1 Score: (0 + 90) / 2 = 45 // Node1 Score: (0 + 90) / 2 = 45
// Node2 scores on 0-10 scale // Node2 scores on 0-MaxNodeScore scale
// CPU Score: (5000 * 100) / 10000 = 50 // CPU Score: (5000 * MaxNodeScore) / 10000 = 50
// Memory Score: 9000 > 8000 return 0 // Memory Score: 9000 > 8000 return 0
// Node2 Score: (50 + 0) / 2 = 25 // Node2 Score: (50 + 0) / 2 = 25
pod: &v1.Pod{Spec: bigCPUAndMemory}, pod: &v1.Pod{Spec: bigCPUAndMemory},

View File

@ -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: // Node1 Score:
// rawScoringFunction(used + requested / available) // rawScoringFunction(used + requested / available)
// resourceScoringFunction((0+0),8) // resourceScoringFunction((0+0),8)
// = 100 - (8-0)*(100/8) = 0 = rawScoringFunction(0) // = maxUtilization - (8-0)*(maxUtilization/8) = 0 = rawScoringFunction(0)
// Node1 Score: 0 // Node1 Score: 0
// Node2 scores (used resources) on 0-10 scale // Node2 scores (used resources) on 0-MaxNodeScore scale
// rawScoringFunction(used + requested / available) // rawScoringFunction(used + requested / available)
// resourceScoringFunction((0+0),4) // resourceScoringFunction((0+0),4)
// = 100 - (4-0)*(100/4) = 0 = rawScoringFunction(0) // = maxUtilization - (4-0)*(maxUtilization/4) = 0 = rawScoringFunction(0)
// Node2 Score: 0 // Node2 Score: 0
pod: &v1.Pod{Spec: noResources}, 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: // Node1 Score:
// rawScoringFunction(used + requested / available) // rawScoringFunction(used + requested / available)
// resourceScoringFunction((0+2),8) // resourceScoringFunction((0+2),8)
// = 100 - (8-2)*(100/8) = 25 = rawScoringFunction(25) // = maxUtilization - (8-2)*(maxUtilization/8) = 25 = rawScoringFunction(25)
// Node1 Score: 2 // Node1 Score: 2
// Node2 scores (used resources) on 0-10 scale // Node2 scores (used resources) on 0-MaxNodeScore scale
// rawScoringFunction(used + requested / available) // rawScoringFunction(used + requested / available)
// resourceScoringFunction((0+2),4) // resourceScoringFunction((0+2),4)
// = 100 - (4-2)*(100/4) = 50 = rawScoringFunction(50) // = maxUtilization - (4-2)*(maxUtilization/4) = 50 = rawScoringFunction(50)
// Node2 Score: 5 // Node2 Score: 5
pod: &v1.Pod{Spec: extendedResourcePod1}, 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: // Node1 Score:
// rawScoringFunction(used + requested / available) // rawScoringFunction(used + requested / available)
// resourceScoringFunction((0+2),8) // resourceScoringFunction((0+2),8)
// = 100 - (8-2)*(100/8) = 25 =rawScoringFunction(25) // = maxUtilization - (8-2)*(maxUtilization/8) = 25 = rawScoringFunction(25)
// Node1 Score: 2 // Node1 Score: 2
// Node2 scores (used resources) on 0-10 scale // Node2 scores (used resources) on 0-MaxNodeScore scale
// rawScoringFunction(used + requested / available) // rawScoringFunction(used + requested / available)
// resourceScoringFunction((2+2),4) // resourceScoringFunction((2+2),4)
// = 100 - (4-4)*(100/4) = 100 = rawScoringFunction(100) // = maxUtilization - (4-4)*(maxUtilization/4) = maxUtilization = rawScoringFunction(maxUtilization)
// Node2 Score: 10 // Node2 Score: 10
pod: &v1.Pod{Spec: extendedResourcePod1}, 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: // Node1 Score:
// rawScoringFunction(used + requested / available) // rawScoringFunction(used + requested / available)
// resourceScoringFunction((0+4),8) // resourceScoringFunction((0+4),8)
// = 100 - (8-4)*(100/8) = 50 = rawScoringFunction(50) // = maxUtilization - (8-4)*(maxUtilization/8) = 50 = rawScoringFunction(50)
// Node1 Score: 5 // Node1 Score: 5
// Node2 scores (used resources) on 0-10 scale // Node2 scores (used resources) on 0-MaxNodeScore scale
// rawScoringFunction(used + requested / available) // rawScoringFunction(used + requested / available)
// resourceScoringFunction((0+4),4) // resourceScoringFunction((0+4),4)
// = 100 - (4-4)*(100/4) = 100 = rawScoringFunction(100) // = maxUtilization - (4-4)*(maxUtilization/4) = maxUtilization = rawScoringFunction(maxUtilization)
// Node2 Score: 10 // Node2 Score: 10
pod: &v1.Pod{Spec: extendedResourcePod2}, pod: &v1.Pod{Spec: extendedResourcePod2},