diff --git a/test/integration/scheduler_perf/README.md b/test/integration/scheduler_perf/README.md index fd6baa58cb9..f1c4af4288e 100644 --- a/test/integration/scheduler_perf/README.md +++ b/test/integration/scheduler_perf/README.md @@ -113,3 +113,6 @@ Integration testing uses the same `config/performance-config.yaml` as benchmarking. By default, workloads labeled as `integration-test` are executed as part of integration testing. `-test-scheduling-label-filter` can be used to change that. + +We should make each test case with `integration-test` label very small, +so that all tests with the label should take less than 5 min to complete. diff --git a/test/integration/scheduler_perf/config/performance-config.yaml b/test/integration/scheduler_perf/config/performance-config.yaml index 0e48e85b122..ac7840200c6 100644 --- a/test/integration/scheduler_perf/config/performance-config.yaml +++ b/test/integration/scheduler_perf/config/performance-config.yaml @@ -3,6 +3,8 @@ # - integration-test: used to select workloads that # run in pull-kubernetes-integration. Choosing those tests # is a tradeoff between code coverage and overall runtime. +# We should make each test case with integration-test label very small, +# so that all tests with the label should take less than 5 min to complete. # - performance: used to select workloads that run # in ci-benchmark-scheduler-perf. Such workloads # must run long enough (ideally, longer than 10 seconds) @@ -23,6 +25,12 @@ countParam: $measurePods collectMetrics: true workloads: + - name: 5Nodes + labels: [integration-test, fast] + params: + initNodes: 5 + initPods: 5 + measurePods: 10 - name: 500Nodes labels: [integration-test, fast] params: @@ -58,6 +66,12 @@ collectMetrics: true namespace: sched-1 workloads: + - name: 5Nodes + labels: [integration-test, fast] + params: + initNodes: 5 + initPods: 1 + measurePods: 4 - name: 500Nodes labels: [integration-test, fast] params: @@ -88,8 +102,14 @@ countParam: $measurePods collectMetrics: true workloads: + - name: 5Nodes + labels: [integration-test, fast] + params: + initNodes: 5 + initPods: 5 + measurePods: 10 - name: 500Nodes - labels: [fast] + labels: [integration-test, fast] params: initNodes: 500 initPods: 500 @@ -121,13 +141,20 @@ persistentVolumeClaimTemplatePath: config/templates/pvc.yaml collectMetrics: true workloads: + - name: 5Nodes + labels: [integration-test, fast] + params: + initNodes: 5 + initPods: 5 + measurePods: 10 - name: 500Nodes - labels: [fast] + labels: [integration-test, performance, fast] params: initNodes: 500 initPods: 500 measurePods: 1000 - name: 5000Nodes + labels: [performance] params: initNodes: 5000 initPods: 5000 @@ -162,13 +189,20 @@ persistentVolumeClaimTemplatePath: config/templates/pvc.yaml collectMetrics: true workloads: + - name: 5Nodes + labels: [integration-test, fast] + params: + initNodes: 5 + initPods: 5 + measurePods: 10 - name: 500Nodes - labels: [fast] + labels: [integration-test, performance, fast] params: initNodes: 500 initPods: 500 measurePods: 1000 - name: 5000Nodes + labels: [performance] params: initNodes: 5000 initPods: 5000 @@ -201,13 +235,20 @@ persistentVolumeClaimTemplatePath: config/templates/pvc.yaml collectMetrics: true workloads: - - name: 500Nodes + - name: 5Nodes labels: [integration-test, fast] + params: + initNodes: 5 + initPods: 5 + measurePods: 10 + - name: 500Nodes + labels: [integration-test, performance, fast] params: initNodes: 500 initPods: 500 measurePods: 1000 - name: 5000Nodes + labels: [performance] params: initNodes: 5000 initPods: 5000 @@ -239,8 +280,14 @@ namespace: sched-1 collectMetrics: true workloads: + - name: 5Nodes + labels: [integration-test, fast] + params: + initNodes: 5 + initPods: 5 + measurePods: 10 - name: 500Nodes - labels: [fast] + labels: [integration-test, fast] params: initNodes: 500 initPods: 500 @@ -274,13 +321,20 @@ namespace: sched-1 collectMetrics: true workloads: - - name: 500Nodes + - name: 5Nodes labels: [integration-test, fast] + params: + initNodes: 5 + initPods: 5 + measurePods: 10 + - name: 500Nodes + labels: [integration-test, performance, fast] params: initNodes: 500 initPods: 500 measurePods: 1000 - name: 5000Nodes + labels: [performance] params: initNodes: 5000 initPods: 5000 @@ -308,8 +362,14 @@ namespace: sched-1 collectMetrics: true workloads: + - name: 5Nodes + labels: [integration-test, fast] + params: + initNodes: 5 + initPods: 5 + measurePods: 10 - name: 500Nodes - labels: [fast] + labels: [integration-test, fast] params: initNodes: 500 initPods: 500 @@ -348,6 +408,11 @@ countParam: $measurePods collectMetrics: true workloads: + - name: 5Nodes + labels: [integration-test, fast] + params: + initNodes: 5 + measurePods: 10 - name: 15000Nodes labels: [performance, fast] params: @@ -369,8 +434,14 @@ countParam: $measurePods collectMetrics: true workloads: + - name: 5Nodes + labels: [integration-test, fast] + params: + initNodes: 5 + initPods: 5 + measurePods: 10 - name: 500Nodes - labels: [fast] + labels: [integration-test, fast] params: initNodes: 500 initPods: 500 @@ -404,6 +475,12 @@ podTemplatePath: config/templates/pod-with-topology-spreading.yaml collectMetrics: true workloads: + - name: 5Nodes + labels: [integration-test, fast] + params: + initNodes: 5 + initPods: 10 + measurePods: 10 - name: 500Nodes labels: [integration-test, fast] params: @@ -439,13 +516,20 @@ podTemplatePath: config/templates/pod-with-preferred-topology-spreading.yaml collectMetrics: true workloads: + - name: 5Nodes + labels: [integration-test, fast] + params: + initNodes: 5 + initPods: 10 + measurePods: 10 - name: 500Nodes - labels: [fast] + labels: [integration-test, performance, fast] params: initNodes: 500 initPods: 1000 measurePods: 1000 - name: 5000Nodes + labels: [performance] params: initNodes: 5000 initPods: 5000 @@ -492,13 +576,20 @@ countParam: $measurePods collectMetrics: true workloads: - - name: 500Nodes + - name: 5Nodes labels: [integration-test, fast] + params: + initNodes: 5 + initPods: 2 + measurePods: 10 + - name: 500Nodes + labels: [integration-test, performance, fast] params: initNodes: 500 initPods: 200 measurePods: 1000 - name: 5000Nodes + labels: [performance] params: initNodes: 5000 initPods: 2000 @@ -511,7 +602,6 @@ measurePods: 5000 - name: PreemptionBasic - labels: [performance] workloadTemplate: - opcode: createNodes countParam: $initNodes @@ -523,8 +613,14 @@ podTemplatePath: config/templates/pod-high-priority.yaml collectMetrics: true workloads: + - name: 5Nodes + labels: [integration-test, fast] + params: + initNodes: 5 + initPods: 20 + measurePods: 5 - name: 500Nodes - labels: [fast] + labels: [performance, fast] params: initNodes: 500 initPods: 2000 @@ -539,7 +635,6 @@ # measurePods: 5000 - name: PreemptionPVs - labels: [performance] workloadTemplate: - opcode: createNodes countParam: $initNodes @@ -553,8 +648,14 @@ persistentVolumeClaimTemplatePath: config/templates/pvc.yaml collectMetrics: true workloads: + - name: 5Nodes + labels: [integration-test, fast] + params: + initNodes: 5 + initPods: 20 + measurePods: 5 - name: 500Nodes - labels: [fast] + labels: [performance, fast] params: initNodes: 500 initPods: 2000 @@ -581,8 +682,14 @@ podTemplatePath: config/templates/pod-default.yaml collectMetrics: true workloads: + - name: 5Nodes/2InitPods + labels: [integration-test, fast] + params: + initNodes: 5 + initPods: 2 + measurePods: 10 - name: 500Nodes/200InitPods - labels: [fast] + labels: [integration-test, fast] params: initNodes: 500 initPods: 200 @@ -622,6 +729,11 @@ podTemplatePath: config/templates//pod-default.yaml collectMetrics: true workloads: + - name: 10Nodes + labels: [integration-test, fast] + params: + initNodes: 10 + measurePods: 100 - name: 1000Nodes labels: [integration-test, fast] params: @@ -662,14 +774,22 @@ collectMetrics: true namespace: measure-ns-0 workloads: + - name: 10Nodes + labels: [integration-test, fast] + params: + initNodes: 10 + initPodsPerNamespace: 2 + initNamespaces: 2 + measurePods: 6 - name: 500Nodes - labels: [fast] + labels: [performance, fast] params: initNodes: 500 initPodsPerNamespace: 4 initNamespaces: 10 measurePods: 100 - name: 5000Nodes + labels: [performance] params: initNodes: 5000 initPodsPerNamespace: 40 @@ -707,14 +827,22 @@ collectMetrics: true namespace: measure-ns-0 workloads: + - name: 10Nodes + labels: [integration-test, fast] + params: + initNodes: 10 + initPodsPerNamespace: 2 + initNamespaces: 2 + measurePods: 10 - name: 500Nodes - labels: [fast] + labels: [performance, fast] params: initNodes: 500 initPodsPerNamespace: 4 initNamespaces: 10 measurePods: 100 - name: 5000Nodes + labels: [performance] params: initNodes: 5000 initPodsPerNamespace: 40 @@ -755,14 +883,22 @@ collectMetrics: true namespace: measure-ns-0 workloads: + - name: 10Nodes + labels: [integration-test, fast] + params: + initNodes: 10 + initPodsPerNamespace: 2 + initNamespaces: 2 + measurePods: 10 - name: 500Nodes - labels: [fast] + labels: [performance, fast] params: initNodes: 500 initPodsPerNamespace: 4 initNamespaces: 10 measurePods: 100 - name: 5000Nodes + labels: [performance] params: initNodes: 5000 initPodsPerNamespace: 50 @@ -800,14 +936,22 @@ collectMetrics: true namespace: measure-ns-0 workloads: + - name: 10Nodes + labels: [integration-test, fast] + params: + initNodes: 10 + initPodsPerNamespace: 2 + initNamespaces: 2 + measurePods: 10 - name: 500Nodes - labels: [fast] + labels: [performance, fast] params: initNodes: 500 initPodsPerNamespace: 4 initNamespaces: 10 measurePods: 100 - name: 5000Nodes + labels: [performance] params: initNodes: 5000 initPodsPerNamespace: 50 @@ -835,8 +979,14 @@ countParam: $measurePods collectMetrics: true workloads: + - name: 5Nodes + labels: [integration-test, fast] + params: + taintNodes: 1 + normalNodes: 4 + measurePods: 4 - name: 500Nodes - labels: [fast] + labels: [integration-test, fast] params: taintNodes: 100 normalNodes: 400 @@ -1165,7 +1315,13 @@ countParam: $measurePods collectMetrics: true workloads: - - name: 1Node + - name: 1Node_10GatedPods + labels: [integration-test, fast] + params: + gatedPods: 10 + deletingPods: 100 + measurePods: 100 + - name: 1Node_10000GatedPods labels: [performance, fast] params: gatedPods: 10000 @@ -1192,7 +1348,12 @@ countParam: $measurePods collectMetrics: true workloads: - - name: 1000Node + - name: 1Node_10GatedPods + labels: [integration-test, fast] + params: + gatedPods: 10 + measurePods: 10 + - name: 1Node_10000GatedPods labels: [performance, fast] params: gatedPods: 10000