kubernetes/test/integration/scheduler_perf
Kubernetes Submit Queue 823f31ec91 Merge pull request #47713 from ravisantoshgudimetla/scheduler_perf_test_fix
Automatic merge from submit-queue

Small fix for number of pods and nodes in test function

**What this PR does / why we need it**:
Small fix to have correct pods and nodes in test function.
**Which issue this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close that issue when PR gets merged)*: fixes #

**Special notes for your reviewer**:
Scheduler perf, nodes and pods number fix for 100 nodes 3k pods.
**Release note**:

```release-note
NONE
```
2017-07-07 13:04:41 -07:00
..
BUILD run hack/update-all 2017-06-22 11:31:03 -07:00
OWNERS Add ownership for the future of scheduler_perf and kubemark 2017-05-24 10:17:50 -04:00
README.md fix the wrong test path 2017-02-09 15:16:11 +08:00
scheduler_bench_test.go Switch scheduler to use generated listers/informers 2017-02-23 09:57:12 -05:00
scheduler_perf_types.go Changes suggested by reviewers for scheduler extensibility 2017-05-04 21:51:29 -04:00
scheduler_test.go Merge pull request #47713 from ravisantoshgudimetla/scheduler_perf_test_fix 2017-07-07 13:04:41 -07:00
test-performance.sh Update scheduler perf to spin up similar client to other tests 2016-10-12 23:50:07 -04:00
util.go run hack/update-all 2017-06-22 11:31:03 -07:00

Scheduler Performance Test

Motivation

We already have a performance testing system -- Kubemark. However, Kubemark requires setting up and bootstrapping a whole cluster, which takes a lot of time.

We want to have a standard way to reproduce scheduling latency metrics result and benchmark scheduler as simple and fast as possible. We have the following goals:

  • Save time on testing
    • The test and benchmark can be run in a single box. We only set up components necessary to scheduling without booting up a cluster.
  • Profiling runtime metrics to find out bottleneck
    • Write scheduler integration test but focus on performance measurement. Take advantage of go profiling tools and collect fine-grained metrics, like cpu-profiling, memory-profiling and block-profiling.
  • Reproduce test result easily
    • We want to have a known place to do the performance related test for scheduler. Developers should just run one script to collect all the information they need.

Currently the test suite has the following:

  • density test (by adding a new Go test)
    • schedule 30k pods on 1000 (fake) nodes and 3k pods on 100 (fake) nodes
    • print out scheduling rate every second
    • let you learn the rate changes vs number of scheduled pods
  • benchmark
    • make use of go test -bench and report nanosecond/op.
    • schedule b.N pods when the cluster has N nodes and P scheduled pods. Since it takes relatively long time to finish one round, b.N is small: 10 - 100.

How To Run

cd kubernetes/test/integration/scheduler_perf
./test-performance.sh

Analytics

Analytics