clusterloader2/testing/scheduler-throughput/config.yaml (76 lines of code) (raw):
{{$totalSchedulerThroughputPods := DefaultParam .CL2_SCHEDULER_THROUGHPUT_PODS 5000}}
{{$defaultQps := DefaultParam .CL2_DEFAULT_QPS 500}}
{{$defaultBurst := DefaultParam .CL2_DEFAULT_BURST 1000}}
{{$uniformQps := DefaultParam .CL2_UNIFORM_QPS 500}}
{{$SCHEDULER_THROUGHPUT_THRESHOLD := DefaultParam .CL2_SCHEDULER_THROUGHPUT_THRESHOLD 400}}
name: direct-scheduler-throughput
namespace:
number: 1
tuningSets:
# default is a tuningset that is meant to be used when we don't have any specific requirements on pace of operations.
- name: default
globalQPSLoad:
qps: {{$defaultQps}}
burst: {{$defaultBurst}}
- name: UniformQPS
qpsLoad:
qps: {{$uniformQps}}
steps:
- name: Creating scheduler throughput measurements
measurements:
- Identifier: DirectSchedulerThroughputPodStartupLatency
Method: PodStartupLatency
Params:
action: start
labelSelector: group = direct-scheduler-throughput
threshold: 5s
- Identifier: DirectSchedulingThroughput
# TODO: Move to SchedulingThroughputPrometheus which requires cl2 prom stack setup as pre-req
Method: SchedulingThroughput
Params:
action: start
labelSelector: group = direct-scheduler-throughput
measurmentInterval: 1s
- name: create scheduler throughput pods
phases:
- namespaceRange:
min: 1
max: 1
replicasPerNamespace: {{$totalSchedulerThroughputPods}}
tuningSet: UniformQPS
objectBundle:
- basename: direct-scheduler-throughput-pod
objectTemplatePath: pod-default.yaml
templateFillMap:
Group: direct-scheduler-throughput
- name: Waiting for scheduler throughput pods to be created
measurements:
- Identifier: WaitForDirectSchedulerThroughputPods
Method: WaitForRunningPods
Params:
action: gather
timeout: 5m
desiredPodCount: {{$totalSchedulerThroughputPods}}
labelSelector: group = direct-scheduler-throughput
- name: Collecting scheduler throughput measurements
measurements:
- Identifier: DirectSchedulerThroughputPodStartupLatency
Method: PodStartupLatency
Params:
action: gather
- Identifier: DirectSchedulingThroughput
Method: SchedulingThroughput
Params:
action: gather
enableViolations: true
threshold: {{$SCHEDULER_THROUGHPUT_THRESHOLD}}
- name: Delete scheduler throughput pods
phases:
- namespaceRange:
min: 1
max: 1
replicasPerNamespace: 0
tuningSet: default
objectBundle:
- basename: direct-scheduler-throughput-pod
objectTemplatePath: pod-default.yaml
templateFillMap:
Group: direct-scheduler-throughput