clusterloader2/testing/batch/config.yaml (84 lines of code) (raw):

{{$MODE := DefaultParam .MODE "Indexed"}} {{$NODES_PER_NAMESPACE := MinInt .Nodes (DefaultParam .NODES_PER_NAMESPACE 100)}} {{$PODS_PER_NODE := DefaultParam .PODS_PER_NODE 30}} {{$LOAD_TEST_THROUGHPUT := DefaultParam .CL2_LOAD_TEST_THROUGHPUT 10}} {{$totalPods := MultiplyInt $PODS_PER_NODE .Nodes}} {{$namespaces := DivideInt .Nodes $NODES_PER_NAMESPACE}} {{$podsPerNamespace := DivideInt $totalPods $namespaces}} # small_job: 1/2 of namespace pods should be in small Jobs. {{$smallJobSize := 5}} {{$smallJobsPerNamespace := DivideInt $podsPerNamespace (MultiplyInt 2 $smallJobSize)}} # medium_job: 1/4 of namespace pods should be in medium Jobs. {{$mediumJobSize := 20}} {{$mediumJobsPerNamespace := DivideInt $podsPerNamespace (MultiplyInt 4 $mediumJobSize)}} # Large_job: 1/4 of namespace pods should be in large Jobs. {{$largeJobSize := 400}} {{$largeJobsPerNamespace := DivideInt $podsPerNamespace (MultiplyInt 4 $largeJobSize)}} {{$jobRunningTime := DefaultParam .CL2_JOB_RUNNING_TIME "30s"}} name: batch namespace: number: {{$namespaces}} tuningSets: - name: UniformQPS qpsLoad: qps: {{$LOAD_TEST_THROUGHPUT}} steps: - name: Start measurements measurements: - Identifier: WaitForFinishedJobs Method: WaitForFinishedJobs Params: action: start labelSelector: group = test-job - Identifier: JobLifecycleLatency Method: JobLifecycleLatency Params: action: start labelSelector: group = test-job - name: Create {{$MODE}} jobs phases: - namespaceRange: min: 1 max: {{$namespaces}} replicasPerNamespace: {{$smallJobsPerNamespace}} tuningSet: UniformQPS objectBundle: - basename: small objectTemplatePath: "job.yaml" templateFillMap: Replicas: {{$smallJobSize}} Mode: {{$MODE}} Sleep: {{$jobRunningTime}} - namespaceRange: min: 1 max: {{$namespaces}} replicasPerNamespace: {{$mediumJobsPerNamespace}} tuningSet: UniformQPS objectBundle: - basename: medium objectTemplatePath: "job.yaml" templateFillMap: Replicas: {{$mediumJobSize}} Mode: {{$MODE}} Sleep: {{$jobRunningTime}} - namespaceRange: min: 1 max: {{$namespaces}} replicasPerNamespace: {{$largeJobsPerNamespace}} tuningSet: UniformQPS objectBundle: - basename: large objectTemplatePath: "job.yaml" templateFillMap: Replicas: {{$largeJobSize}} Mode: {{$MODE}} Sleep: {{$jobRunningTime}} - name: Wait for {{$MODE}} jobs to finish measurements: - Identifier: JobLifecycleLatency Method: JobLifecycleLatency Params: action: gather timeout: 10m - Identifier: WaitForFinishedJobs Method: WaitForFinishedJobs Params: action: gather timeout: 10m