Merge pull request #117813 from pohly/scheduler-perf-test-runtime

scheduler-perf: measure workload runtime and relabel workloads
This commit is contained in:
Kubernetes Prow Robot 2023-05-15 12:19:18 -07:00 committed by GitHub
commit f84ff3d052
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 52 additions and 8 deletions

View File

@ -1,5 +1,4 @@
- name: SchedulingBasic
labels: [performance]
defaultPodTemplatePath: config/pod-default.yaml
workloadTemplate:
- opcode: createNodes
@ -17,13 +16,13 @@
initPods: 500
measurePods: 1000
- name: 5000Nodes
labels: [performance, fast]
params:
initNodes: 5000
initPods: 1000
measurePods: 1000
- name: SchedulingPodAntiAffinity
labels: [performance]
defaultPodTemplatePath: config/pod-with-pod-anti-affinity.yaml
workloadTemplate:
- opcode: createNodes
@ -46,13 +45,13 @@
initPods: 100
measurePods: 400
- name: 5000Nodes
labels: [performance, fast]
params:
initNodes: 5000
initPods: 1000
measurePods: 1000
- name: SchedulingSecrets
labels: [performance]
defaultPodTemplatePath: config/pod-with-secret-volume.yaml
workloadTemplate:
- opcode: createNodes
@ -70,6 +69,7 @@
initPods: 500
measurePods: 1000
- name: 5000Nodes
labels: [performance, fast]
params:
initNodes: 5000
initPods: 5000
@ -173,7 +173,6 @@
measurePods: 1000
- name: SchedulingPodAffinity
labels: [performance]
defaultPodTemplatePath: config/pod-with-pod-affinity.yaml
workloadTemplate:
- opcode: createNodes
@ -200,6 +199,7 @@
initPods: 500
measurePods: 1000
- name: 5000Nodes
labels: [performance, fast]
params:
initNodes: 5000
initPods: 5000
@ -235,7 +235,6 @@
measurePods: 1000
- name: SchedulingPreferredPodAntiAffinity
labels: [performance]
defaultPodTemplatePath: config/pod-with-preferred-pod-affinity.yaml
workloadTemplate:
- opcode: createNodes
@ -258,13 +257,13 @@
initPods: 500
measurePods: 1000
- name: 5000Nodes
labels: [performance, fast]
params:
initNodes: 5000
initPods: 5000
measurePods: 1000
- name: SchedulingNodeAffinity
labels: [performance]
defaultPodTemplatePath: config/pod-with-node-affinity.yaml
workloadTemplate:
- opcode: createNodes
@ -286,13 +285,13 @@
initPods: 500
measurePods: 1000
- name: 5000Nodes
labels: [performance, fast]
params:
initNodes: 5000
initPods: 5000
measurePods: 1000
- name: TopologySpreading
labels: [performance]
workloadTemplate:
- opcode: createNodes
countParam: $initNodes
@ -315,6 +314,7 @@
initPods: 1000
measurePods: 1000
- name: 5000Nodes
labels: [performance, fast]
params:
initNodes: 5000
initPods: 5000
@ -411,6 +411,7 @@
collectMetrics: true
workloads:
- name: 500Nodes
labels: [fast]
params:
initNodes: 500
initPods: 2000
@ -455,7 +456,6 @@
# measurePods: 5000
- name: Unschedulable
labels: [performance]
workloadTemplate:
- opcode: createNodes
countParam: $initNodes
@ -475,6 +475,7 @@
initPods: 200
measurePods: 1000
- name: 5000Nodes/200InitPods
labels: [performance, fast]
params:
initNodes: 5000
initPods: 200
@ -508,11 +509,13 @@
initNodes: 1000
measurePods: 1000
- name: 5000Nodes
labels: [performance, fast]
params:
initNodes: 5000
measurePods: 2000
- name: SchedulingRequiredPodAntiAffinityWithNSSelector
labels: [performance]
defaultPodTemplatePath: config/pod-anti-affinity-ns-selector.yaml
workloadTemplate:
- opcode: createNodes
@ -536,6 +539,13 @@
collectMetrics: true
namespace: measure-ns-0
workloads:
- name: 500Nodes
labels: [fast]
params:
initNodes: 500
initPodsPerNamespace: 4
initNamespaces: 10
measurePods: 100
- name: 5000Nodes
params:
initNodes: 5000
@ -544,6 +554,7 @@
measurePods: 1000
- name: SchedulingPreferredAntiAffinityWithNSSelector
labels: [performance]
defaultPodTemplatePath: config/pod-preferred-anti-affinity-ns-selector.yaml
workloadTemplate:
- opcode: createNodes
@ -567,6 +578,13 @@
collectMetrics: true
namespace: measure-ns-0
workloads:
- name: 500Nodes
labels: [fast]
params:
initNodes: 500
initPodsPerNamespace: 4
initNamespaces: 10
measurePods: 100
- name: 5000Nodes
params:
initNodes: 5000
@ -575,6 +593,7 @@
measurePods: 1000
- name: SchedulingRequiredPodAffinityWithNSSelector
labels: [performance]
defaultPodTemplatePath: config/pod-affinity-ns-selector.yaml
workloadTemplate:
- opcode: createNodes
@ -601,6 +620,13 @@
collectMetrics: true
namespace: measure-ns-0
workloads:
- name: 500Nodes
labels: [fast]
params:
initNodes: 500
initPodsPerNamespace: 4
initNamespaces: 10
measurePods: 100
- name: 5000Nodes
params:
initNodes: 5000
@ -609,6 +635,7 @@
measurePods: 1000
- name: SchedulingPreferredAffinityWithNSSelector
labels: [performance]
defaultPodTemplatePath: config/pod-preferred-affinity-ns-selector.yaml
workloadTemplate:
- opcode: createNodes
@ -632,6 +659,13 @@
collectMetrics: true
namespace: measure-ns-0
workloads:
- name: 500Nodes
labels: [fast]
params:
initNodes: 500
initPodsPerNamespace: 4
initNamespaces: 10
measurePods: 100
- name: 5000Nodes
params:
initNodes: 5000
@ -660,6 +694,7 @@
normalNodes: 400
measurePods: 400
- name: 5000Nodes
labels: [performance, fast]
params:
taintNodes: 1000
normalNodes: 4000

View File

@ -769,6 +769,15 @@ func unrollWorkloadTemplate(b *testing.B, wt []op, w *workload) []op {
}
func runWorkload(ctx context.Context, b *testing.B, tc *testCase, w *workload) []DataItem {
start := time.Now()
b.Cleanup(func() {
duration := time.Now().Sub(start)
// This includes startup and shutdown time and thus does not
// reflect scheduling performance. It's useful to get a feeling
// for how long each workload runs overall.
b.ReportMetric(duration.Seconds(), "runtime_seconds")
})
var cfg *config.KubeSchedulerConfiguration
var err error
if tc.SchedulerConfigPath != nil {