From 7ce57c6a8e914453b19961878c7ed12971b4ccd2 Mon Sep 17 00:00:00 2001 From: Wei Huang Date: Wed, 19 Jun 2019 14:26:12 +0800 Subject: conventional test args to bypass UTs - when running benchmark tests, we used to use `-run=xxx` to exclude unit tests; however a more conventional way is to use `-run=^$`, `-run=^$$` here is to excape the $ simbol, otherwise it won't work. - add info to display benchmark output only --- contributors/devel/sig-scheduling/scheduler_benchmarking.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/contributors/devel/sig-scheduling/scheduler_benchmarking.md b/contributors/devel/sig-scheduling/scheduler_benchmarking.md index dc456e21..1c08b5d8 100644 --- a/contributors/devel/sig-scheduling/scheduler_benchmarking.md +++ b/contributors/devel/sig-scheduling/scheduler_benchmarking.md @@ -11,7 +11,7 @@ To run integration benchmarks use the following command from inside a Kubernetes directory. ```sh -make test-integration WHAT=./test/integration/scheduler_perf KUBE_TEST_VMODULE="''" KUBE_TEST_ARGS="-run=xxx -bench=." +make test-integration WHAT=./test/integration/scheduler_perf KUBE_TEST_VMODULE="''" KUBE_TEST_ARGS="-run=^$$ -bench=." ``` You can also provide a benchmark name in order to run a specific set of @@ -19,9 +19,11 @@ benchmarks. Please refer to [Go documentation on benchmarks](https://golang.org/ for more information. ```sh -make test-integration WHAT=./test/integration/scheduler_perf KUBE_TEST_VMODULE="''" KUBE_TEST_ARGS="-run=xxx -bench=BenchmarkScheduling" +make test-integration WHAT=./test/integration/scheduler_perf KUBE_TEST_VMODULE="''" KUBE_TEST_ARGS="-run=^$$ -bench=BenchmarkScheduling" ``` +> To display benchmark output only, you can append `-alsologtostderr=false -logtostderr=false` to `KUBE_TEST_ARGS`. + These benchmarks are located in `./test/integration/scheduler_perf/scheduler_bench_test.go`. The function names start with `BenchmarkScheduling`. At the beginning of each function there are a few lines in the form of: @@ -51,7 +53,7 @@ it in the `-bench` argument. For example, the following will run only those benchmarks with 5000 nodes and 1000 existing pods. ```sh -make test-integration WHAT=./test/integration/scheduler_perf KUBE_TEST_VMODULE="''" KUBE_TEST_ARGS="-run=xxx -bench=BenchmarkScheduling/5000Nodes/1000Pods" +make test-integration WHAT=./test/integration/scheduler_perf KUBE_TEST_VMODULE="''" KUBE_TEST_ARGS="-run=^$$ -bench=BenchmarkScheduling/5000Nodes/1000Pods" ``` ## Profiling the scheduler @@ -60,7 +62,7 @@ You can get CPU profiling information from the benchmarks by adding a `-cpuprofi to the command above. Example: ```sh -make test-integration WHAT=./test/integration/scheduler_perf KUBE_TEST_VMODULE="''" KUBE_TEST_ARGS="-run=xxx -bench=BenchmarkScheduling -cpuprofile cpu.out" +make test-integration WHAT=./test/integration/scheduler_perf KUBE_TEST_VMODULE="''" KUBE_TEST_ARGS="-run=^$$ -bench=BenchmarkScheduling -cpuprofile cpu.out" ``` After obtaining the CPU profile, you can use `pprof` to view the results. For -- cgit v1.2.3