Skip to content

Commit 6f3af07

Browse files
authored
Merge pull request kubernetes#127829 from dom4ha/scheduler-perf
Add PreemptionBlocking test in scheduler_perf to monitor how long the preemption process (which blocks scheduling of regular nodes) takes.
2 parents 1f9038a + b2b4144 commit 6f3af07

File tree

1 file changed

+43
-0
lines changed

1 file changed

+43
-0
lines changed

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

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -688,6 +688,49 @@
688688
# initPods: 20000
689689
# measurePods: 5000
690690

691+
# Measure throughput of regular schedulable pods that are interleaved by high priority preemption pods scheduled at 20/s rate.
692+
# Implementation of asynchrounous preemption feature https://github.com/kubernetes/kubernetes/issues/126858 is supposed to increase the trhoughput of the measured pods as all heavy operations (apiserver communication) will be performed asyncronously, wihtout blocking the scheduler loop.
693+
# How is it achieved:
694+
# 1. There are X initial nodes with 4 low priority pods each, consuming 3.6 CPU out of the total 4 available.
695+
# 2. High priority preemption which need to preempt 3 of 4 low priority pods to fit (require 3 CPU).
696+
# 3. Measured pods are always schedulable, as they require 0.1 CPU only.
697+
- name: PreemptionAsync
698+
workloadTemplate:
699+
- opcode: createNodes
700+
countParam: $initNodes
701+
- opcode: createPods
702+
countParam: $initPods
703+
podTemplatePath: config/templates/pod-low-priority.yaml
704+
- opcode: churn
705+
mode: create
706+
templatePaths:
707+
- config/templates/pod-high-priority-large-cpu.yaml
708+
intervalMilliseconds: 50
709+
- opcode: createPods
710+
countParam: $measurePods
711+
podTemplatePath: config/templates/pod-default.yaml
712+
collectMetrics: true
713+
workloads:
714+
- name: 5Nodes
715+
labels: [integration-test, performance, short]
716+
params:
717+
initNodes: 5
718+
initPods: 20
719+
measurePods: 5
720+
- name: 500Nodes
721+
labels: [performance, short]
722+
params:
723+
initNodes: 500
724+
initPods: 2000
725+
measurePods: 500
726+
- name: 5000Nodes
727+
labels: [performance]
728+
threshold: 200
729+
params:
730+
initNodes: 5000
731+
initPods: 20000
732+
measurePods: 5000
733+
691734
- name: Unschedulable
692735
workloadTemplate:
693736
- opcode: createNodes

0 commit comments

Comments
 (0)