Skip to content

Commit 2095380

Browse files
authored
Merge pull request kubernetes#129885 from macsko/default_topology_spreading_scheduler_perf_test_case
Add scheduler_perf test case for default PodTopologySpreading constraints
2 parents 0e7298d + 274ad03 commit 2095380

File tree

2 files changed

+86
-0
lines changed

2 files changed

+86
-0
lines changed

test/integration/scheduler_perf/misc/performance-config.yaml

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,14 @@
7474
initNodes: 5000
7575
initPods: 1000
7676
measurePods: 10000
77+
- name: 5000Nodes_50000Pods_QueueingHintsEnabled
78+
featureGates:
79+
SchedulerQueueingHints: true
80+
labels: [performance]
81+
params:
82+
initNodes: 5000
83+
initPods: 5000
84+
measurePods: 50000
7785

7886
# This test case simulates the scheduling of daemonset.
7987
# https://github.com/kubernetes/kubernetes/issues/124709
@@ -253,6 +261,73 @@
253261
initPods: 5000
254262
measurePods: 5000
255263

264+
# This test case simulates the scheduling of pods with service.
265+
# It benchmarks default PodTopologySpread constraints that calculate the label selector from services.
266+
- name: DefaultTopologySpreading
267+
workloadTemplate:
268+
- opcode: createNodes
269+
countParam: $initNodes
270+
nodeTemplatePath: ../templates/node-default.yaml
271+
labelNodePrepareStrategy:
272+
labelKey: "topology.kubernetes.io/zone"
273+
labelValues: ["moon-1", "moon-2", "moon-3"]
274+
- opcode: createAny
275+
namespace: service-ns
276+
templatePath: ../templates/service.yaml
277+
- opcode: createPods
278+
countParam: $initPods
279+
podTemplatePath: ../templates/pod-default.yaml
280+
- opcode: createPods
281+
namespace: service-ns
282+
countParam: $measurePods
283+
podTemplatePath: ../templates/pod-with-label.yaml
284+
collectMetrics: true
285+
workloads:
286+
- name: 5Nodes
287+
featureGates:
288+
SchedulerQueueingHints: false
289+
labels: [integration-test, short]
290+
params:
291+
initNodes: 5
292+
initPods: 10
293+
measurePods: 10
294+
- name: 5Nodes_QueueingHintsEnabled
295+
featureGates:
296+
SchedulerQueueingHints: true
297+
labels: [integration-test, short]
298+
params:
299+
initNodes: 5
300+
initPods: 10
301+
measurePods: 10
302+
- name: 500Nodes
303+
labels: [performance, short]
304+
params:
305+
initNodes: 500
306+
initPods: 1000
307+
measurePods: 1000
308+
- name: 5000Nodes_10000Pods
309+
labels: [performance]
310+
params:
311+
initNodes: 5000
312+
initPods: 5000
313+
measurePods: 10000
314+
- name: 5000Nodes_50000Pods
315+
featureGates:
316+
SchedulerQueueingHints: false
317+
labels: [performance]
318+
params:
319+
initNodes: 5000
320+
initPods: 5000
321+
measurePods: 50000
322+
- name: 5000Nodes_50000Pods_QueueingHintsEnabled
323+
featureGates:
324+
SchedulerQueueingHints: true
325+
labels: [performance]
326+
params:
327+
initNodes: 5000
328+
initPods: 5000
329+
measurePods: 50000
330+
256331
- name: PreemptionBasic
257332
workloadTemplate:
258333
- opcode: createNodes
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
apiVersion: v1
2+
kind: Service
3+
metadata:
4+
generateName: service-
5+
spec:
6+
selector:
7+
app: scheduler-perf
8+
ports:
9+
- protocol: TCP
10+
port: 80
11+
targetPort: 8000

0 commit comments

Comments
 (0)