Add test case related to measure compute score and its energy consumption impact
[yardstick.git] / docs / testing / user / userguide / opnfv_yardstick_tc015.rst
diff --git a/docs/testing/user/userguide/opnfv_yardstick_tc015.rst b/docs/testing/user/userguide/opnfv_yardstick_tc015.rst
new file mode 100755 (executable)
index 0000000..277614a
--- /dev/null
@@ -0,0 +1,141 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International\r
+.. License.\r
+.. http://creativecommons.org/licenses/by/4.0\r
+.. (c) OPNFV, Orange and others.\r
+\r
+*************************************\r
+Yardstick Test Case Description TC015\r
+*************************************\r
+\r
+.. _unixbench: https://github.com/kdlucas/byte-unixbench/blob/master/UnixBench\r
+\r
++-----------------------------------------------------------------------------+\r
+| Processing speed with impact on energy consumption and CPU load             |\r
+|                                                                             |\r
++--------------+--------------------------------------------------------------+\r
+|test case id  | OPNFV_YARDSTICK_TC015_PROCESSING SPEED                       |\r
+|              |                                                              |\r
++--------------+--------------------------------------------------------------+\r
+|metric        | score of single cpu running,                                 |\r
+|              | score of parallel running,                                   |\r
+|              | energy consumption                                           |\r
+|              | cpu load                                                     |\r
+|              |                                                              |\r
++--------------+--------------------------------------------------------------+\r
+|test purpose  | The purpose of TC015 is to evaluate the IaaS compute         |\r
+|              | performance with regards to CPU processing speed with        |\r
+|              | its impact on the energy consumption                         |\r
+|              | It measures score of single cpu running and parallel         |\r
+|              | running. Energy consumption and cpu load are monitored while |\r
+|              | the cpu test is running.                                     |\r
+|              |                                                              |\r
+|              | The purpose is also to be able to spot the trends.           |\r
+|              | Test results, graphs and similar shall be stored for         |\r
+|              | comparison reasons and product evolution understanding       |\r
+|              | between different OPNFV versions and/or configurations,      |\r
+|              | different server types.                                      |\r
+|              |                                                              |\r
++--------------+--------------------------------------------------------------+\r
+|test tool     | UnixBench                                                    |\r
+|              |                                                              |\r
+|              | Unixbench is the most used CPU benchmarking software tool.   |\r
+|              | It can measure the performance of bash scripts, CPUs in      |\r
+|              | multithreading and single threading. It can also measure the |\r
+|              | performance for parallel tasks. Also, specific disk IO for   |\r
+|              | small and large files are performed. You can use it to       |\r
+|              | measure either linux dedicated servers and linux vps         |\r
+|              | servers, running CentOS, Debian, Ubuntu, Fedora and other    |\r
+|              | distros.                                                     |\r
+|              |                                                              |\r
+|              | (UnixBench is not always part of a Linux distribution, hence |\r
+|              | it needs to be installed. As an example see the              |\r
+|              | /yardstick/tools/ directory for how to generate a Linux      |\r
+|              | image with UnixBench included.)                              |\r
+|              |                                                              |\r
+|              | Redfish API                                                  |\r
+|              | This HTTPS interface is provided by BMC of every telco grade |\r
+|              | server. Is is a standard interface.                          |\r
+|              |                                                              |\r
++--------------+--------------------------------------------------------------+\r
+|test          | The UnixBench runs system benchmarks on a compute, getting   |\r
+|description   | information on the CPUs in the system. If the system has     |\r
+|              | more than one CPU, the tests will be run twice -- once with  |\r
+|              | a single copy of each test running at once, and once with N  |\r
+|              | N copies, where N is the number of CPUs.                     |\r
+|              |                                                              |\r
+|              | UnixBench will process a set of results from a single test   |\r
+|              | by averaging the individual pass results into a single final |\r
+|              | value.                                                       |\r
+|              |                                                              |\r
+|              | While the cpu test is running Energy scenario run in         |\r
+|              | background to monitor the number of watt consumed by the     |\r
+|              | compute server on the fly. The same is done using Cpuload    |\r
+|              | scenario to monitor the overall percentage of CPU used on    |\r
+|              | the fly. This enables to balance the CPU score with its      |\r
+|              | impact on energy consumption. Synchronized measurements      |\r
+|              | enables to look at any relation between CPU load and energy  |\r
+|              | consumption.                                                 |\r
+|              |                                                              |\r
++--------------+--------------------------------------------------------------+\r
+|configuration | file: opnfv_yardstick_tc015.yaml                             |\r
+|              |                                                              |\r
+|              | run_mode:                                                    |\r
+|              |    Run Energy and Cpuload in background                      |\r
+|              |    Run unixbench in quiet mode or verbose mode               |\r
+|              |    test_type: dhry2reg, whetstone and so on                  |\r
+|              |                                                              |\r
+|              | Duration and Interval are set globally for Energy and        |\r
+|              | Cpuload, aligned with duration of UnixBench test.            |\r
+|              | SLA can be set for each scenario type. Default is NA.        |\r
+|              | For SLA with single_score and parallel_score, both can be    |\r
+|              | set by user, default is NA.                                  |\r
+|              |                                                              |\r
++--------------+--------------------------------------------------------------+\r
+|applicability | Test shall be applied to node context only                   |\r
+|              | It can be configured with different:                         |\r
+|              |                                                              |\r
+|              |  * test types: dhry2reg, whetstone                           |\r
+|              |                                                              |\r
+|              | Default values exist.                                        |\r
+|              |                                                              |\r
+|              | SLA (optional) : min_score: The minimun UnixBench score that |\r
+|              | is accepted.                                                 |\r
+|              |                                                              |\r
++--------------+--------------------------------------------------------------+\r
+|usability     | This test case is one of Yardstick's generic test. Thus it   |\r
+|              | is runnable on most of the scenarios.                        |\r
+|              |                                                              |\r
++--------------+--------------------------------------------------------------+\r
+|references    | unixbench_                                                   |\r
+|              |                                                              |\r
+|              | ETSI-NFV-TST001                                              |\r
+|              |                                                              |\r
++--------------+--------------------------------------------------------------+\r
+|pre-test      | The target shall have unixbench installed on it.             |\r
+|conditions    |                                                              |\r
+|              |                                                              |\r
++--------------+--------------------------------------------------------------+\r
+|test sequence | description and expected result                              |\r
+|              |                                                              |\r
++--------------+--------------------------------------------------------------+\r
+|step 1        | Yardstick is connected with the target node using ssh.       |\r
+|              |                                                              |\r
++--------------+--------------------------------------------------------------+\r
+|step 2        | Energy and Cpuload are launched silently in background one   |\r
+|              | after the other.                                             |\r
+|              | Then UnixBench is invoked. All the tests are executed using  |\r
+|              | the "Run" script in the top-level of UnixBench directory.    |\r
+|              | The "Run" script will run a standard "index" test, and save  |\r
+|              | the report in the "results" directory. Then the report is    |\r
+|              | processed by "unixbench_benchmark" and checked against the   |\r
+|              | SLA.                                                         |\r
+|              | While unibench runs energy and cpu load are catched          |\r
+|              | periodically according to interval value.                    |\r
+|              |                                                              |\r
+|              | Result: Logs are stored.                                     |\r
+|              |                                                              |\r
++--------------+--------------------------------------------------------------+\r
+|test verdict  | Fails only if SLA is not passed, or if there is a test case  |\r
+|              | execution problem.                                           |\r
+|              |                                                              |\r
++--------------+--------------------------------------------------------------+\r