diff options
Diffstat (limited to 'docs')
21 files changed, 25 insertions, 819 deletions
diff --git a/docs/testing/developer/design/api.rst b/docs/testing/developer/design/api.rst new file mode 100644 index 00000000..eb2b0d67 --- /dev/null +++ b/docs/testing/developer/design/api.rst @@ -0,0 +1,2 @@ +- Which framework has been used and why +- How to extend to more api diff --git a/docs/testing/developer/design/apidocs/index.rst b/docs/testing/developer/design/apidocs/index.rst deleted file mode 100644 index 241a2680..00000000 --- a/docs/testing/developer/design/apidocs/index.rst +++ /dev/null @@ -1,13 +0,0 @@ -.. This work is licensed under a Creative Commons Attribution 4.0 International License. -.. http://creativecommons.org/licenses/by/4.0 -.. (c) 2015 Dell Inc. -.. (c) 2016 ZTE Corp. - -################ -QTIP Configguide -################ - -.. toctree:: - :maxdepth: 2 - - ./qtip_restful_api.rst diff --git a/docs/testing/developer/design/apidocs/qtip_restful_api.rst b/docs/testing/developer/design/apidocs/qtip_restful_api.rst deleted file mode 100644 index 06c01292..00000000 --- a/docs/testing/developer/design/apidocs/qtip_restful_api.rst +++ /dev/null @@ -1,10 +0,0 @@ -.. This work is licensed under a Creative Commons Attribution 4.0 International License. -.. http://creativecommons.org/licenses/by/4.0 -.. (c) 2015 Dell Inc. -.. (c) 2016 ZTE Corp. - -**************** -Qtip restful api -**************** - -You can get all the Qtip restful api by http://restful_api.qtip.openzero.net/api/spec.html. diff --git a/docs/testing/developer/design/arch.rst b/docs/testing/developer/design/arch.rst new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/docs/testing/developer/design/arch.rst diff --git a/docs/testing/developer/design/cli.rst b/docs/testing/developer/design/cli.rst new file mode 100644 index 00000000..7b226e6f --- /dev/null +++ b/docs/testing/developer/design/cli.rst @@ -0,0 +1,2 @@ +- Which framework has been used and why +- How to extend to more commands diff --git a/docs/testing/developer/design/compute_QPI.rst b/docs/testing/developer/design/compute-qpi.rst index 2e5aa87c..2e5aa87c 100644 --- a/docs/testing/developer/design/compute_QPI.rst +++ b/docs/testing/developer/design/compute-qpi.rst diff --git a/docs/testing/developer/design/dashboard.rst b/docs/testing/developer/design/dashboard.rst deleted file mode 100644 index 60c4720d..00000000 --- a/docs/testing/developer/design/dashboard.rst +++ /dev/null @@ -1,151 +0,0 @@ -.. This work is licensed under a Creative Commons Attribution 4.0 International License. -.. http://creativecommons.org/licenses/by/4.0 -.. (c) 2016 ZTE Corp. - - -********* -Dashboard -********* - -The dashboard gives user an intuitive view of benchmark result. - -Purpose -======= - -The basic element to be displayed is QPI a.k.a. QTIP Performance Index. But it -is also important to show user - -#. How is the final score calculated? -#. Under what condition is the test plan executed? -#. How many runs of a performance tests have been executed and is there any deviation? -#. Comparison of benchmark result from different PODs or configuration - -Templates -========= - -Different board templates are created to satisfy the above requirements. - -Composition ------------ - -QTIP gives a simple score but there must be a complex formula behind it. This -view explains the composition of the QPI. - -Condition ---------- - -The condition of a benchmark result includes - -* System Under Test - - * Hardware environment - * Hypervisor version - * Operation System release version - * System Configuration - -* Test Tools - - * Release version - * Configuration - -* Test Facility - - * Laboratory - * Engineer - * Date - -Conditions that do NOT have an obvious affect on the test result may be ignored, -e.g. temperature, power supply. - -Stats ------ - -Performance tests are actually measurement of specific metrics. All measurement -comes with uncertainty. The final result is normally one or a group of metrics -calculated from many repeats. - -For each metric, the stats board shall consist of a diagram of all measured -values and a box of stats:: - - ^ +------------+ - | | count: ? | - | |average: ? | - | | min: ? | - | X | max: ? | - | XXXX XXXX X XXXXX | | - |X XX XX XX XXX XXX XX | | - | XXXXXX X XXXXX XX | | - | | | - | | | - | | | - | | | - | | | - +---------------------------------------------> +------------+ - -The type of diagram and selection of stats shall depend on what metric to show. - -Comparison ----------- - -Comparison can be done between different PODs or different configuration on the -same PODs. - -In a comparison view, the metrics are displayed in the same diagram. And the -parameters are listed side by side. - -Both common parameters and different parameters are listed. Common values are -merged to the same cell. And user may configure the view to hide common rows. - -A draft design is as following:: - - ^ - | - | - | - | XXXXXXXX - | XXX XX+-+ XXXXXXXXXX - | XXX +XXXX XXXXX - +-+XX X +--+ ++ XXXXXX +-+ - | X+-+X +----+ +-+ +----+X - |X +--+ +---+ XXXXXX X - | +-------+ X - | - | - +-----------------------------------------------------> - - +--------------------+----------------+---------------+ - | different param 1 | | | - | | | | - +-----------------------------------------------------+ - | different param 2 | | | - | | | | - +-------------------------------------+---------------+ - | common param 1 | | - | | | - +-------------------------------------+---------------+ - | different param 3 | | | - | | | | - +-------------------------------------+---------------+ - | common param 2 | | - | | | - +--------------------+--------------------------------+ - +------------+ - | HIDE COMMON| - +------------+ - -Time line ---------- - -Time line diagram for analysis of time critical performance test:: - - +-----------------+-----------+-------------+-------------+-----+ - | | | | | | - +-----------------> | | | | - | +-----------> | | | - | ? ms +-------------> | | - | ? ms +------------>+ | - | ? ms ? ms | - | | - +---------------------------------------------------------------+ - -The time cost between checkpoints shall be displayed in the diagram. diff --git a/docs/testing/developer/design/index.rst b/docs/testing/developer/design/index.rst index b6dd0c01..2b4bd9b0 100644 --- a/docs/testing/developer/design/index.rst +++ b/docs/testing/developer/design/index.rst @@ -10,6 +10,7 @@ QTIP Design Specifications .. toctree:: :maxdepth: 2 - dashboard.rst - compute_QPI.rst - integration_with_yardstick.rst + arch.rst + cli.rst + api.rst + compute-qpi.rst diff --git a/docs/testing/developer/design/integration_with_yardstick.rst b/docs/testing/developer/design/integration_with_yardstick.rst deleted file mode 100644 index a8298d6f..00000000 --- a/docs/testing/developer/design/integration_with_yardstick.rst +++ /dev/null @@ -1,92 +0,0 @@ -.. This work is licensed under a Creative Commons Attribution 4.0 International License. -.. http://creativecommons.org/licenses/by/4.0 -.. (c) 2016 ZTE Corp. - - -************************** -Integration with Yardstick -************************** - -Problem description -=================== - -For each specified QPI [1]_, QTIP needs to select a suite of test cases and collect -required test results. Based on these results, Qtip calculates the score. - -Proposed change -=============== -Qtip has a flexible architecture [2]_ to support different mode: standalone and agent. -It is recommended to use **agent mode** to work with existing test runners. Yardstick will -act as a runner to generate test result and trigger Qtip agent on the completion of test. - - -Work Items in Yardstick ------------------------ - -1. Create a customized suite in Yardstick - -Yardstick not only has many existing suites but also support customized suites. Qtip could -create a suite named **Qtip-PoC** in Yardstick repo to verify workflow of Qtip agent mode. - -2. Launch Qtip in Yardstick - -Whether to launch Qtip will be determined by checking the existence of OS environment -variable *QTIP*. If it exists, Qtip will be launched by using Yardstick CLI -`yardstick plugin install` [3]_. - -3. Yardstick interacts with Qtip - -See -`Yardstick-Qtip+integration <https://wiki.opnfv.org/display/yardstick/Yardstick-Qtip+integration>`_ -for details. - -Work Items in Qtip ------------------- - -1. Provide an API for Yardstick to post test result and environment info - -After completing test execution, Yardstick will post test result and enviroment info with -JSON format via QTIP API. See -`Yardstick-Qtip+integration <https://wiki.opnfv.org/display/yardstick/Yardstick-Qtip+integration>`_ -for details. - -2. Parse yardstick test result - -When Qtip agent receive Yarstick test result and enviroment info, Qtip agent will extract -metrics which is definded in metric spec configuration file. Based on these metrics, Qtip -agent will caculate QPI. - -3. Provide an API for querying QPI - -Qtip will provide an API for querying QPI. See -`Yardstick-Qtip+integration <https://wiki.opnfv.org/display/yardstick/Yardstick-Qtip+integration>`_ -for details. - -Implementation -============== - -Assignee(s) ------------ - -*Primary assignee:* - wu.zhihui - -*Other contributors* - TBD - -Testing -======= - -The changes will be covered by new unit test. - -Documentation -============= - -TBD - -Reference -========= - -.. [1] QTIP performance index -.. [2] https://wiki.opnfv.org/display/qtip/Architecture -.. [3] https://wiki.opnfv.org/display/yardstick/How+to+install+a+plug-in+into+Yardstick diff --git a/docs/testing/user/installation/docker.rst b/docs/testing/user/installation/docker.rst new file mode 100644 index 00000000..f5d01191 --- /dev/null +++ b/docs/testing/user/installation/docker.rst @@ -0,0 +1 @@ +How to install qtip from docker registry diff --git a/docs/testing/user/userguide/benchmark-suites.rst b/docs/testing/user/installation/index.rst index 84d1c647..7b19a1ca 100644 --- a/docs/testing/user/userguide/benchmark-suites.rst +++ b/docs/testing/user/installation/index.rst @@ -1,15 +1,15 @@ .. This work is licensed under a Creative Commons Attribution 4.0 International License. .. http://creativecommons.org/licenses/by/4.0 -.. (c) 2016 ZTE Corp. +.. (c) 2017 ZTE Corp. -**************** -Benchmark Suites -**************** +####################### +QTIP Installation Guide +####################### .. toctree:: :maxdepth: 2 - _01-compute.rst - _02-network.rst - _03-storage.rst + ./overview.rst + ./docker.rst + ./source.rst diff --git a/docs/testing/user/installation/overview.rst b/docs/testing/user/installation/overview.rst new file mode 100644 index 00000000..c9651d22 --- /dev/null +++ b/docs/testing/user/installation/overview.rst @@ -0,0 +1 @@ +What will be installed and how.
\ No newline at end of file diff --git a/docs/testing/user/installation/source.rst b/docs/testing/user/installation/source.rst new file mode 100644 index 00000000..d32b245f --- /dev/null +++ b/docs/testing/user/installation/source.rst @@ -0,0 +1 @@ +How to install qtip from source.
\ No newline at end of file diff --git a/docs/testing/user/userguide/_02-network.rst b/docs/testing/user/userguide/_02-network.rst deleted file mode 100644 index 00fe5b0a..00000000 --- a/docs/testing/user/userguide/_02-network.rst +++ /dev/null @@ -1,61 +0,0 @@ -.. This work is licensed under a Creative Commons Attribution 4.0 International License. -.. http://creativecommons.org/licenses/by/4.0 -.. (c) 2015 Dell Inc. -.. (c) 2016 ZTE Corp. - - -Network Suite -============= - -QTIP uses IPerf3 as the main tool for testing the network throughput. -There are three tests that are run through the QTIP framework. - -**1. Network throughput between two compute nodes** - -**2. Network Throughput between two VMs on the same compute node** - -**3. Network Throughput between two VMs on different compute nodes** - - -Network throughput between two compute nodes ------------------------------------------------ - -For the throughput between two compute nodes, Iperf3 is installed on the compute nodes comprising the systems-under-test. -One of the compute nodes is used as a server and the other as a client. -The client pushes traffic to the server for a duration specified by the user in the configuration file for Iperf3. - - -These files can be found in the "benchmarks/testplan/{POD}/network/" directory. -The bandwidth is limited by the physical link layer speed connecting the two compute nodes. -The result file includes the b/s bandwidth and the CPU usage for both the client and server. - -Network throughput between two VMs on the same compute node --------------------------------------------------------------- - -QTIP framework sets up a stack with a private network, security groups, routers and attaches two VMs to this network. -Iperf3 is installed on the VMs and one is assigned the role of client while the other VM serves as a server. -Traffic is pushed over the QTIP private network between the two VMs. -A closer look is needed to see how the traffic actually flows between the VMs in this configuration to understand what is happening to the packet as it traverses the OpenStack virtual network. - -The packet originates from VM1 and its sent to the Linux bridge via a tap interface where the security groups are written. -Afterwards the packet is forwarded to the Integration bridge (br-int) via a patch port. -Since VM2 is also connected to the Integration bridge in a similar manner as VM1, the packet gets forwarded to the linux bridge connecting VM2. -After the Linux bridge the packet is sent to VM2 and is received by the Iperf3 server. -Since no physical link is involved in this topology, only the OVS (Integration bridge) (br-int) is being benchmarked. - - -Network throughput between two VMs on different compute nodes --------------------------------------------------------------- - - -As in case 2, QTIP framework sets up a stack with a private network, security groups, routers, and two VMs which are attached to the created network. However, the two VMs are spawned up on different compute nodes. - -Since the VMs are spawned on different nodes, the traffic involves additional paths. - -The traffic packet leaves the client VM and makes its way to the Integration Bridge (br-int) as in the previous case through a linux bridge and a patch port. -The integration bridge (br-int) forwards the packet to the the tunneling bridge (br-tun) where the packet is encapsulated based on the tunneling protocol used (GRE/VxLAN). -The packet then moves onto the physical link through the ethernet bridge (br-eth). - -On the receiving compute node, the packet arrives at ethernet bridge(br-eth) through the physical link. -This packet then moves to the tunneling bridge (br-tun) where the packet is decapsulated. -The packet then moves onto the internal bridge (br-int) and finally moves through a patch port into the linux bridge and eventually to the VM where it is received by the Iperf server application. diff --git a/docs/testing/user/userguide/_03-storage.rst b/docs/testing/user/userguide/_03-storage.rst deleted file mode 100644 index b1490432..00000000 --- a/docs/testing/user/userguide/_03-storage.rst +++ /dev/null @@ -1,31 +0,0 @@ -.. This work is licensed under a Creative Commons Attribution 4.0 International License. -.. http://creativecommons.org/licenses/by/4.0 -.. (c) 2015 Dell Inc. -.. (c) 2016 ZTE Corp. - - -Storage Suite -============= - -The QTIP benchmark suite aims to evaluate storage components within an OPNFV platform. -For Brahamaputra release, FIO would evaluate File System performance for the host machine. -It will also test the I/O performance provided by the hypervisor(KVM) when Storage benchmarks are run inside VMs. - -QTIP storage test cases consist of: - -**1. FIO Job to benchmark baremetal file system performance** - -**2. FIO Job to bechmark virtual machine file system performance** - -**Note: For Brahmaputra release, only the Ephemeral Storage is being tested. For C release persistent block and object storage would be tested.** - -The FIO Job would consist of: - -1. A file size of 5GB -2. Random Read 50%, Random Write 50% -3. Direct I/O -4. Asynch I/O Engine -5. I/O Queue depth of 2 -6. Block size :4K - -For this Job, I/O per second would be measured along mean I/O latency to provide storage performance numbers. diff --git a/docs/testing/user/userguide/_testcase_description.rst b/docs/testing/user/userguide/_testcase_description.rst deleted file mode 100644 index d60ca949..00000000 --- a/docs/testing/user/userguide/_testcase_description.rst +++ /dev/null @@ -1,46 +0,0 @@ -.. Template to be used for test case descriptions in QTIP Project. - Write one .rst per test case. - Borrowed Heavily from Yardstick - Upload the .rst for the test case in /docs/ directory. - Review in Gerrit. - -Test Case Description -===================== - -+-----------------------------------------------------------------------------+ -|test case slogan e.g. Network throughput | -+==============+==============================================================+ -|test case id | e.g. qtip_throughput | -+--------------+--------------------------------------------------------------+ -|metric | what will be measured, e.g. latency | -+--------------+--------------------------------------------------------------+ -|test purpose | describe what is the purpose of the test case | -+--------------+--------------------------------------------------------------+ -|configuration | what .yaml file to use, state SLA if applicable, state | -| | test duration, list and describe the scenario options used in| -| | this TC and also list the options using default values. | -+--------------+--------------------------------------------------------------+ -|test tool | e.g. ping | -+--------------+--------------------------------------------------------------+ -|references | e.g. RFCxxx, ETSI-NFVyyy | -+--------------+--------------------------------------------------------------+ -|applicability | describe variations of the test case which can be | -| | performend, e.g. run the test for different packet sizes | -+--------------+--------------------------------------------------------------+ -|pre-test | describe configuration in the tool(s) used to perform | -|conditions | the measurements (e.g. fio, pktgen), POD-specific | -| | configuration required to enable running the test | -+--------------+------+----------------------------------+--------------------+ -|test sequence | step | description | result | -| +------+----------------------------------+--------------------+ -| | 1 | use this to describe tests that | what happens in | -| | | require several steps e.g. | this step | -| | | step 1 collect logs | e.g. logs collected| -| +------+----------------------------------+--------------------+ -| | 2 | remove interface | interface down | -| +------+----------------------------------+--------------------+ -| | N | what is done in step N | what happens | -+--------------+------+----------------------------------+--------------------+ -|test verdict | expected behavior, or SLA, pass/fail criteria | -+--------------+--------------------------------------------------------------+ - diff --git a/docs/testing/user/userguide/annex.rst b/docs/testing/user/userguide/annex.rst deleted file mode 100644 index e8bf5555..00000000 --- a/docs/testing/user/userguide/annex.rst +++ /dev/null @@ -1,18 +0,0 @@ -.. This work is licensed under a Creative Commons Attribution 4.0 International License. -.. http://creativecommons.org/licenses/by/4.0 -.. (c) 2016 ZTE Corp. - - -***** -Annex -***** - -.. toctree:: - :maxdepth: 2 - - _testcase_description.rst - -Downloads -========= - -- :download:`Sample configuration <../download/sample_config.yaml>` diff --git a/docs/testing/user/userguide/cli.rst b/docs/testing/user/userguide/cli.rst new file mode 100644 index 00000000..a7d3c63e --- /dev/null +++ b/docs/testing/user/userguide/cli.rst @@ -0,0 +1,2 @@ +- How to use qtip-cli to list, show and run benchmarks. +- Refer to auto generated help page if available, or give hint on how to get help. diff --git a/docs/testing/user/userguide/index.rst b/docs/testing/user/userguide/index.rst index 4be3e498..78c5d117 100644 --- a/docs/testing/user/userguide/index.rst +++ b/docs/testing/user/userguide/index.rst @@ -11,6 +11,5 @@ QTIP User Guide .. toctree:: :maxdepth: 2 - introduction.rst - benchmark-suites.rst - annex.rst + cli.rst + qpi-compute.rst diff --git a/docs/testing/user/userguide/introduction.rst b/docs/testing/user/userguide/introduction.rst deleted file mode 100644 index 3147f0aa..00000000 --- a/docs/testing/user/userguide/introduction.rst +++ /dev/null @@ -1,381 +0,0 @@ -.. This work is licensed under a Creative Commons Attribution 4.0 International License. -.. http://creativecommons.org/licenses/by/4.0 -.. (c) 2015 Dell Inc. -.. (c) 2016 ZTE Corp. - - -************ -Introduction -************ - -This guide will serve as a first step to familiarize the user with how to -run QTIP the first time when the user pull QTIP image on to their host machine. -In order to install and config QTIP please follow the instructions in the -configuration.rst located in docs/configguide/configuration.rst. - -QTIP Directory structure -======================== - -The QTIP directory has been sectioned off into multiple folders to facilitate - segmenting information into relevant categories. The folders that concern - the end user are `benchmarks/testplan/` and `benchmarks/suite/`. - -**testplan/:** - -This folder is used to store all the config files which are used to setup the -environment prior to a test. This folder is further divided into opnfv pods -which run QTIP. Inside each pod there are folders which contain the config files -segmented based on test cases. Namely, these include, `Compute`, `Network` and -`Storage`. The default folder is there for the end user who is interested in -testing their infrastructure which is installed by fuel or compass but aren't -part of a opnfv pod,and for opnfv CI. - -The structure of the directory for the user appears as follows -:: - - testplan/default/compute - testplan/default/network - testplan/default/storage - -The benchmarks that are part of the QTIP framework are listed under these -folders. An example of the compute folder is shown below. -Their naming convention is <BENCHMARK>_<VM/BM>.yaml -:: - - dhrystone_bm.yaml - dhrystone_vm.yaml - whetstone_vm.yaml - whetstone_bm.yaml - ssl_vm.yaml - ssl_bm.yaml - ramspeed_vm.yaml - ramspeed_bm.yaml - dpi_vm.yaml - dpi_bm.yaml - -The above listed files are used to configure the environment. The VM/BM tag -distinguishes between a test to be run on the Virtual Machine or the compute -node itself, respectively. - - -**benchmarks/suite/:** - -This folder contains three files, namely `compute`, `network` and `storage`. -These files list the benchmarks are to be run by the QTIP framework. Sample -compute test file is shown below -:: - - { - "bm": [ - "dhrystone_bm.yaml", - "whetstone_bm.yaml", - "ramspeed_bm.yaml", - "dpi_bm.yaml", - "ssl_bm.yaml" - ], - "vm": [ - "dhrystone_vm.yaml", - "whetstone_vm.yaml", - "ramspeed_vm.yaml", - "dpi_vm.yaml", - "ssl_vm.yaml" - ] - } - -The compute file will now run all the benchmarks listed above one after -another on the environment. - -Preparing a config file for test: ---------------------------------- - -We will be using dhrystone as a example to list out the changes that the -user will need to do in order to run the benchmark. - -Dhrystone on Compute Nodes: -^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -QTIP framework can run benchmarks on the actual compute nodes as well. In -order to run dhrystone on the compute nodes we will be editing the -dhrystone_bm.yaml file. - -:: - - Scenario: - benchmark: dhrystone - host: machine_1, machine_2 - server: - -The `Scenario` field is used by to specify the name of the benchmark to -run as done by `benchmark: dhrystone`. The `host` and `server` tag are -not used for the compute benchmarks but are included here to help the -user `IF` they wish to control the execution. By default both machine_1 -and machine_2 will have dhrystone run on them in parallel but the user -can change this so that machine_1 run dhrystone before machine_2. This -will be elaborated in the `Context` tag. - -:: - - Context: - Host_Machines: - machine_1: - ip: 10.20.0.6 - pw: - role: host - machine_2: - ip: 10.20.0.5 - pw: - role: host - - Virtual_Machines: - -The `Context` tag helps the user list the number of compute nodes they want - to run dhrystone on. The user can list all the compute nodes under the - `Host_Machines` tag. All the machines under test must be listed under the - `Host_Machines` and naming it incrementally higher. The `ip:` tag is used - to specify the IP of the particular compute node.The `ip:` tag can be left - blank when installer type is 'fuel',because QTIP will get ip - from installer. The `pw:` tag can be left blank because QTIP uses its own - key for ssh. In order to run dhrystone on one compute node at a time the user - needs to edit the `role:` tag. `role: host` for machine_1 and `role: server` - for machine_2 will allow for dhrystone to be run on machine_1 and then run - on machine_2. - -:: - - - Test_Description: - Test_category: "Compute" - Benchmark: "dhrystone" - Overview: > - ''' This test will run the dhrystone benchmark in parallel on - machine_1 and machine_2. - -The above field is purely for a description purpose to explain to the user -the working of the test and is not fed to the framework. - -Sample dhrystone_bm.yaml file: ------------------------------- -:: - - Scenario: - benchmark: dhrystone - host: machine_1, machine_2 - server: - - Context: - Host_Machines: - machine_1: - ip: 10.20.0.6 - pw: - role: host - machine_2: - ip: 10.20.0.5 - pw: - role: host - - Virtual_Machines: - - - Test_Description: - Test_category: "Compute" - Benchmark: "dhrystone" - Overview: > - ''' This test will run the dhrystone benchmark in parallel on - machine_1 and machine_2.\n - -Dhrystone on Virtual Machine: -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -To run dhrystone on the VMs we will be editing dhrystone_vm.yaml file. -Snippets on the file are given below. - -:: - - Scenario: - benchmark: dhrystone - host: virtualmachine_1, virtualmachine_2 - server: - - -The `Scenario` field is used by to specify the name of the benchmark to -run as done by `benchmark: dhrystone`. The `host` and `server` tag are -not used for the compute benchmarks but are included here to help the -user `IF` they wish to control the execution. By default both -virtualmachine_1 and virtualmachine_2 will have dhrystone run on them -in parallel but the user can change this so that virtualmachine_1 run -dhrystone before virtualmachine_2. This will be elaborated in the -`Context` tag. -:: - - Context: - Host_Machines: - - Virtual_Machines: - virtualmachine_1: - availability_zone: compute1 - public_network: 'net04_ext' - OS_image: QTIP_CentOS - flavor: m1.large - role: host - virtualmachine_2: - availability_zone: compute2 - public_network: 'net04_ext' - OS_image: QTIP_CentOS - flavor: m1.large - role: host - -The `Context` tag helps the user list the number of VMs and their -characteristic. The user can list all the VMs they want to bring up -under the `Virtual_Machines:` tag. In the above example we will be -bringing up two VMs. One on Compute1 and the other on Compute2. The -user can change this as desired `NOTE: Please ensure you have the -necessary compute nodes before listing under the 'availability_zone:' -tag`. The rest of the options do not need to be modified by the user. - -Running dhrystone sequentially (Optional): -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -In order to run dhrystone on one VM at a time the user needs to edit -the `role:` tag. `role: host` for virtualmachine_1 and `role: server` -for virtualmachine_2 will allow for dhrystone to be run on -virtualmachine_1 and then run on virtualmachine_2. - -:: - - Test_Description: - Test_category: "Compute" - Benchmark: "dhrystone" - Overview: - This test will run the dhrystone benchmark in parallel on - virtualmachine_1 and virtualmachine_2 - -The above field is purely for a decription purpose to explain to -the user the working of the test and is not fed to the framework. - -Running dhrystone with proxy (Optional): -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -In order to run the dhrystone on the hosts or vms which can only access the -public network by proxy, the user needs to add the `Proxy_Environment` info -in `Context` tag. - -:: - - Context: - Host_Machines: - machine_1: - ip: 10.20.0.29 - pw: - role: host - machine_2: - ip: 10.20.0.30 - pw: - role: host - - Virtual_Machines: - - Proxy_Environment: - http_proxy: http://10.20.0.1:8118 - https_proxy: http://10.20.0.1:8118 - no_proxy: localhost,127.0.0.1,10.20.*,192.168.* - -Sample dhrystone_vm.yaml file: ------------------------------- -:: - - Scenario: - benchmark: dhrystone - host: virtualmachine_1, virtualmachine_2 - server: - - Context: - Host_Machines: - - Virtual_Machines: - virtualmachine_1: - availability_zone: compute1 - public_network: 'net04_ext' - OS_image: QTIP_CentOS - flavor: m1.large - role: host - virtualmachine_2: - availability_zone: compute2 - public_network: 'net04_ext' - OS_image: QTIP_CentOS - flavor: m1.large - role: host - - Test_Description: - Test_category: "Compute" - Benchmark: "dhrystone" - Overview: > - This test will run the dhrystone benchmark in parallel on - machine_1 and machine_2.\n - -Commands to run the Framework: ------------------------------- - -In order to start QTIP on the default lab please use the following commands (asssuming your installer -is 'fuel' or 'compass', you use the config files in the benchmarks/testplan/default/ directory and listed the -intended suite in the benchmarks/suite/<RELEVANT-SUITE-FILE>): - -First step is to export the necessary information to the environment and generate QTIP key pair. -Please follow the instructions in the configuration.rst. - -Secondary step download the QTIP image and upload it to the Cloud.QTIP will use this image -to create VM when test VM performance. -:: - - source docker/prepare_qtip_image.sh - -Running QTIP on the using `default` as the pod name and for the `compute` suite by cli. -:: - - python qtip.py -l default -f compute - -Running QTIP on the using 'default' as the pod name and for the 'compute' suite 'bm' type by restful api. -:: - - curl --trace-ascii debug.txt -X POST -d '{ "installer_ip": "10.20.6.2","installer_type":"fuel", "suite_name":"compute", "type": "BM"}' -H "Content-Type: application/json" http://127.0.0.1:5000/api/v1.0/jobs - -Running QTIP on the using 'default' as the pod name and for the 'compute' suite 'vm' type by restful api. -:: - - curl --trace-ascii debug.txt -X POST -d '{ "installer_ip": "10.20.6.2","installer_type":"fuel", "suite_name":"compute", "type": "VM"}' -H "Content-Type: application/json" http://127.0.0.1:5000/api/v1.0/jobs - -Running QTIP on the using `default` as the pod name and for the `network` suite by cli. -:: - - python qtip.py -l default -f network - -Running QTIP on the using 'default' as the pod name and for the 'network' suite 'bm' type by restful api. -:: - - curl --trace-ascii debug.txt -X POST -d '{ "installer_ip": "10.20.6.2","installer_type":"fuel", "suite_name":"network", "type": "BM"}' -H "Content-Type: application/json" http://127.0.0.1:5000/api/v1.0/jobs - -Running QTIP on the using `default` as the pod name and for the `storage` suite by cli. -:: - - python qtip.py -l default -f network - -Running QTIP on the using 'default' as the pod name and for the 'storage' suite 'bm' type by restful api. -:: - - curl --trace-ascii debug.txt -X POST -d '{ "installer_ip": "10.20.6.2","installer_type":"fuel", "suite_name":"storage", "type": "BM"}' -H "Content-Type: application/json" http://127.0.0.1:5000/api/v1.0/jobs - -Get running QTIP job status by restful api -:: - - curl --trace-ascii debug.txt -X GET http://127.0.0.1:5000/api/v1.0/jobs/job-id - For example: - curl --trace-ascii debug.txt -X GET http://127.0.0.1:5000/api/v1.0/jobs/5b71f035-3fd6-425c-9cc7-86acd3a04214 - -Stop running QTIP job by restful api.The job will finish the current benchmark test and stop. -:: - - curl --trace-ascii debug.txt -X DELTET http://127.0.0.1:5000/api/v1.0/jobs/job-id - For example: - curl --trace-ascii debug.txt -X DELETE http://127.0.0.1:5000/api/v1.0/jobs/5b71f035-3fd6-425c-9cc7-86acd3a04214q - -Results: --------- -In QTIP container, QTIP generates results in the `/home/opnfv/qtip/results/` directory are listed down under the particularly benchmark name. So all the results for dhrystone would be listed and time stamped. diff --git a/docs/testing/user/userguide/_01-compute.rst b/docs/testing/user/userguide/qpi-compute.rst index 56be5488..369240c9 100644 --- a/docs/testing/user/userguide/_01-compute.rst +++ b/docs/testing/user/userguide/qpi-compute.rst @@ -29,7 +29,7 @@ Benchmarks The benchmarks include: Dhrystone 2.1 -^^^^^^^^^^^^^^^^ +^^^^^^^^^^^^^ Dhrystone is a synthetic benchmark for measuring CPU performance. It uses integer calculations to evaluate CPU capabilities. Both Single CPU performance is measured along multi-cpu performance. @@ -42,7 +42,7 @@ Additionally, dhrystone results could be modified by optimizing the compiler and References: http://www.eembc.org/techlit/datasheets/dhrystone_wp.pdf Whetstone -^^^^^^^^^^^^ +^^^^^^^^^ Whetstone is a synthetic benchmark to measure CPU floating point operation performance. Both Single CPU performance is measured along multi-cpu performance. @@ -54,7 +54,7 @@ References: http://www.netlib.org/benchmark/whetstone.c OpenSSL Speed -^^^^^^^^^^^^^^^^ +^^^^^^^^^^^^^ OpenSSL Speed can be used to benchmark compute performance of a machine. In QTIP, two OpenSSL Speed benchmarks are incorporated: 1. RSA signatunes/sec signed by a machine |