|
| 1 | +## BACKGROUND |
| 2 | + |
| 3 | +Performance evaluation of KubeBatch scheduler. Kubemark will be used as a tool for benchmarking. |
| 4 | +Kubemark is a performance testing tool which we use to run simulated kubernetes clusters. The primary use case is scalability |
| 5 | +testing, as creating simulated clusters is faster and requires less resources than creating real ones. |
| 6 | + |
| 7 | +## OBJECTIVE |
| 8 | + |
| 9 | +- Evaluating scheduler performance of kube-batch |
| 10 | + |
| 11 | +## DESIGN OVERVIEW |
| 12 | + |
| 13 | +We assume that we want to benchmark a test T with kube-batch scheduler. |
| 14 | +For the benchmarking to be meaningful,these kube-batch should be running in a kubemark cluster and |
| 15 | +at scale (eg. run 100 nodes). |
| 16 | +At a high-level, the kubemark should: |
| 17 | + |
| 18 | +- *choose the set of runs* of tests T executed on environment using the kube-batch scheduler by setting "schedulerName: kube-batch" in the pod spec, |
| 19 | +- *obtain the relevant metrics (E2e Pod startup latencies)* for the runs chosen for comparison, |
| 20 | +- *compute the similarity* for metric, across both the samples, |
| 21 | + |
| 22 | +Final output of the tool will be the answer to the question performance of the kube-batch scheduler. |
| 23 | + |
| 24 | + |
| 25 | + |
| 26 | +### Choosing set of metrics to compare |
| 27 | + |
| 28 | +Kubermark give the following metrics |
| 29 | +- pod startup latency |
| 30 | +- api request serving latency (split by resource and verb) |
| 31 | + |
| 32 | +In our case we would requiring <b> E2E Pod Starup Latency </b> which would include |
| 33 | + - The Latency for <b> scheduling the pod (create to schedule) </b> |
| 34 | + - The Latency for <b> binding the pod to node (schedule to run) </b> |
| 35 | + |
| 36 | +## Changes to be done to the kubemark |
| 37 | + |
| 38 | + 1) Modify the kube-mark startup script to bring up kube-batch scheduler along with the external kubernetes cluster. <br /> |
| 39 | + Create CRDs for podgroup and queue. |
| 40 | + 2) Run the density/latency test 3k pods on 100 (fake) nodes with batch scheduler.<br /> |
| 41 | + For Batch scheduler test case : Modify the density/latency test case to create podgroup and add the podgroup name to the annotation along with "schedulerName: kube-batch" in the pod spec. |
| 42 | + 3) Print out the metrics. |
| 43 | + |
0 commit comments