You are viewing a plain text version of this content. The canonical link for it is here.
Posted to reviews@yunikorn.apache.org by ww...@apache.org on 2022/03/17 04:56:21 UTC

[incubator-yunikorn-site] branch master updated: [YUNIKORN-951] Add perf-tool description into benchmarking tutorial page (#134)

This is an automated email from the ASF dual-hosted git repository.

wwei pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-yunikorn-site.git


The following commit(s) were added to refs/heads/master by this push:
     new d0c5d33  [YUNIKORN-951] Add perf-tool description into benchmarking tutorial page (#134)
d0c5d33 is described below

commit d0c5d337db174b34566523815236cebf3f48c8ca
Author: YuTeng Chen <45...@users.noreply.github.com>
AuthorDate: Thu Mar 17 12:56:17 2022 +0800

    [YUNIKORN-951] Add perf-tool description into benchmarking tutorial page (#134)
---
 docs/assets/node_fairness_conf.png           | Bin 0 -> 12287 bytes
 docs/assets/perf-tutorial-build.png          | Bin 0 -> 53518 bytes
 docs/assets/perf-tutorial-resultDiagrams.png | Bin 0 -> 251263 bytes
 docs/assets/perf-tutorial-resultLog.png      | Bin 0 -> 204787 bytes
 docs/assets/perf_e2e_test.png                | Bin 0 -> 3957 bytes
 docs/assets/perf_e2e_test_conf.png           | Bin 0 -> 25200 bytes
 docs/assets/perf_node_fairness.png           | Bin 0 -> 26614 bytes
 docs/assets/perf_throughput.png              | Bin 0 -> 13024 bytes
 docs/assets/throughput_conf.png              | Bin 0 -> 26837 bytes
 docs/performance/performance_tutorial.md     |  72 ++++++++++++++++++++++++++-
 package.json                                 |   2 +-
 11 files changed, 72 insertions(+), 2 deletions(-)

diff --git a/docs/assets/node_fairness_conf.png b/docs/assets/node_fairness_conf.png
new file mode 100644
index 0000000..80e1dd5
Binary files /dev/null and b/docs/assets/node_fairness_conf.png differ
diff --git a/docs/assets/perf-tutorial-build.png b/docs/assets/perf-tutorial-build.png
new file mode 100644
index 0000000..5c2f28b
Binary files /dev/null and b/docs/assets/perf-tutorial-build.png differ
diff --git a/docs/assets/perf-tutorial-resultDiagrams.png b/docs/assets/perf-tutorial-resultDiagrams.png
new file mode 100644
index 0000000..6d9686d
Binary files /dev/null and b/docs/assets/perf-tutorial-resultDiagrams.png differ
diff --git a/docs/assets/perf-tutorial-resultLog.png b/docs/assets/perf-tutorial-resultLog.png
new file mode 100755
index 0000000..dad58bf
Binary files /dev/null and b/docs/assets/perf-tutorial-resultLog.png differ
diff --git a/docs/assets/perf_e2e_test.png b/docs/assets/perf_e2e_test.png
new file mode 100644
index 0000000..79763d0
Binary files /dev/null and b/docs/assets/perf_e2e_test.png differ
diff --git a/docs/assets/perf_e2e_test_conf.png b/docs/assets/perf_e2e_test_conf.png
new file mode 100644
index 0000000..5aeef94
Binary files /dev/null and b/docs/assets/perf_e2e_test_conf.png differ
diff --git a/docs/assets/perf_node_fairness.png b/docs/assets/perf_node_fairness.png
new file mode 100644
index 0000000..fbacc13
Binary files /dev/null and b/docs/assets/perf_node_fairness.png differ
diff --git a/docs/assets/perf_throughput.png b/docs/assets/perf_throughput.png
new file mode 100644
index 0000000..e89a7f3
Binary files /dev/null and b/docs/assets/perf_throughput.png differ
diff --git a/docs/assets/throughput_conf.png b/docs/assets/throughput_conf.png
new file mode 100644
index 0000000..dd5d720
Binary files /dev/null and b/docs/assets/throughput_conf.png differ
diff --git a/docs/performance/performance_tutorial.md b/docs/performance/performance_tutorial.md
index 2d34025..4c06c0a 100644
--- a/docs/performance/performance_tutorial.md
+++ b/docs/performance/performance_tutorial.md
@@ -355,6 +355,76 @@ scrape_configs:
 
 Once the environment is setup, you are good to run workloads and collect results. YuniKorn community has some useful tools to run workloads and collect metrics, more details will be published here.
 
+### 1. Scenarios 
+In performance tools, there are three types of tests and feedbacks.
+
+|	Test type	|						Description									|	Diagram	|  		Log		|
+| ---------------------	| ------------------------------------------------------------------------------------------------------------------------	| ------------- | ----------------------------- |
+|	node fairness	|	Monitor node resource usage(allocated/capicity) with lots of pods requests						| 	Exist	|	Exist			|
+|	thourghput	|	Measure schedulers' throughput by calculating how many pods are allocated per second based on the pod start time	|	Exist	|	None			|
+
+### 2. Build tool
+The performance tool is available in [yunikorn release repo](https://github.com/apache/incubator-yunikorn-release.git),clone the repo to your workspace. 
+```
+git clone https://github.com/apache/incubator-yunikorn-release.git
+```
+Build the tool:
+```
+cd incubator-yunikorn-release/perf-tools/
+make build
+cd target/perf-tools-bin
+```
+It will look like this.
+![Build-perf-tools](./../assets/perf-tutorial-build.png)
+
+### 3. Set test configuration
+Before start tests, check configuration whether meet your except.
+Default output path is `/tmp`, you can modify `common.outputrootpath` to change it.
+If you set these fields with large number to cause timeout problem, increase value in `common.maxwaitseconds` to allow it.
+
+#### Throughput case
+
+|	Field			|			Description											|
+| ---				| ---									 						|
+|	SchedulerNames		|	List of scheduler will run the test											|
+|	ShowNumOfLastTasks	|	Show metadata of last number of pods										|
+|	CleanUpDelayMs		|	Controll period to refresh deployments status and print log							| 	
+|	RequestConfigs		|	Set resource request and decide number of deployments and pods per deployment with `repeat` and `numPods`	|
+
+In this case,yunikorn and default scheduler will sequentially separately create ten deployments which contains fifty pods.
+It will look like these.
+![throughputConf](./../assets/throughput_conf.png)
+![ThroughputDeployment](./../assets/perf_throughput.png)
+
+#### Node fairness case
+
+|	Field			|	Description									|
+| --- 				| ---											|
+|	SchedulerNames		|	List of schduler will run the test						|
+|	NumPodsPerNode		|	It equals that total pods divided by nodes					|
+|	AllocatePercentage	|	Allow how much percentage of allocatable resource is allowed to allocate	|
+
+Total number of pods will be multiplication of number of ready nodes and `NumPodsPerNode`.
+In following figure, there are thirteen ready nodes and `NumPodsPerNode` is eighty.
+There will be one thousand fourty pods created.
+![nodeFairnessConf](./../assets/node_fairness_conf.png)
+![nodeFairnessDeployment](./../assets/perf_node_fairness.png)
+
+#### e2e perf case
+Its field is similar to throughput one but there is only scheduler in each case.
+![scheduleTestConf](./../assets/perf_e2e_test_conf.png)
+![scheduleTest](./../assets/perf_e2e_test.png)
+
+###  4. Diagrams and logs
+```
+./perf-tools
+```
+It will show result log when each case finished.
+When tests finished, it will look like
+![Result log](./../assets/perf-tutorial-resultLog.png)
+We can find result diagrams and logs in `common.outputrootpath` which is in conf.yaml.
+Related diagrams and logs will be like this.
+![Result diagrams and logs](./../assets/perf-tutorial-resultDiagrams.png)
 ---
 
 ## Collect and Observe YuniKorn metrics
@@ -449,4 +519,4 @@ systemctl restart kubelet
 
 ## Summary
 
-With Kubemark and Prometheus, we can easily run benchmark testing, collect YuniKorn metrics and analyze the performance. This helps us to identify the performance bottleneck in the scheduler and further eliminate them. The YuniKorn community will continue to improve these tools in the future, and continue to gain more performance improvements.
\ No newline at end of file
+With Kubemark and Prometheus, we can easily run benchmark testing, collect YuniKorn metrics and analyze the performance. This helps us to identify the performance bottleneck in the scheduler and further eliminate them. The YuniKorn community will continue to improve these tools in the future, and continue to gain more performance improvements.
diff --git a/package.json b/package.json
index 8d94c5f..3c72848 100644
--- a/package.json
+++ b/package.json
@@ -12,7 +12,7 @@
   "dependencies": {
     "@docusaurus/core": "^2.0.0-beta.15",
     "@docusaurus/preset-classic": "^2.0.0-beta.15",
-    "@docusaurus/theme-search-algolia": "^2.0.0-beta.15",
+    "@docusaurus/theme-search-algolia": "^2.0.0-beta.17",
     "@mdx-js/react": "^1.5.8",
     "clsx": "^1.1.1",
     "react": "16.13.1",