summaryrefslogtreecommitdiffstats
path: root/docs/testing/user/userguide/opnfv_yardstick_tc037.rst
diff options
context:
space:
mode:
authorKubi <jean.gaoliang@huawei.com>2017-03-09 01:28:07 +0000
committerGerrit Code Review <gerrit@opnfv.org>2017-03-09 01:28:07 +0000
commit270d6092c809e8de039a08efd8c108f865cf860e (patch)
treef3ef32dd0639523a002cf32025d40bbabdcecd4c /docs/testing/user/userguide/opnfv_yardstick_tc037.rst
parent6fd6dd87fe4914b970d13e346194612fbc685e64 (diff)
parentfd54fcc22170aa880fc49730730ad80896e2e608 (diff)
Merge "Yardstick Preliminary Documentation"
Diffstat (limited to 'docs/testing/user/userguide/opnfv_yardstick_tc037.rst')
-rw-r--r--docs/testing/user/userguide/opnfv_yardstick_tc037.rst167
1 files changed, 167 insertions, 0 deletions
diff --git a/docs/testing/user/userguide/opnfv_yardstick_tc037.rst b/docs/testing/user/userguide/opnfv_yardstick_tc037.rst
new file mode 100644
index 000000000..5a6e1eaae
--- /dev/null
+++ b/docs/testing/user/userguide/opnfv_yardstick_tc037.rst
@@ -0,0 +1,167 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International
+.. License.
+.. http://creativecommons.org/licenses/by/4.0
+.. (c) OPNFV, Ericsson AB and others.
+
+*************************************
+Yardstick Test Case Description TC037
+*************************************
+
+.. _cirros-image: https://download.cirros-cloud.net
+.. _Ping: https://linux.die.net/man/8/ping
+.. _pktgen: https://www.kernel.org/doc/Documentation/networking/pktgen.txt
+.. _mpstat: http://www.linuxcommand.org/man_pages/mpstat1.html
+
++-----------------------------------------------------------------------------+
+|Latency, CPU Load, Throughput, Packet Loss |
+| |
++--------------+--------------------------------------------------------------+
+|test case id | OPNFV_YARDSTICK_TC037_LATENCY,CPU LOAD,THROUGHPUT, |
+| | PACKET LOSS |
+| | |
++--------------+--------------------------------------------------------------+
+|metric | Number of flows, latency, throughput, packet loss |
+| | CPU utilization percentage, CPU interrupt per second |
+| | |
++--------------+--------------------------------------------------------------+
+|test purpose | The purpose of TC037 is to evaluate the IaaS compute |
+| | capacity and network performance with regards to CPU |
+| | utilization, packet flows and network throughput, such as if |
+| | and how different amounts of flows matter for the throughput |
+| | between hosts on different compute blades, and the CPU load |
+| | variation. |
+| | |
+| | Typically e.g. the performance of a vSwitch depends on the |
+| | number of flows running through it. Also performance of |
+| | other equipment or entities can depend on the number of |
+| | flows or the packet sizes used |
+| | |
+| | The purpose is also to be able to spot the trends. |
+| | Test results, graphs and similar shall be stored for |
+| | comparison reasons and product evolution understanding |
+| | between different OPNFV versions and/or configurations. |
+| | |
++--------------+--------------------------------------------------------------+
+|test tool | Ping, Pktgen, mpstat |
+| | |
+| | Ping is a computer network administration software utility |
+| | used to test the reachability of a host on an Internet |
+| | Protocol (IP) network. It measures the round-trip time for |
+| | packet sent from the originating host to a destination |
+| | computer that are echoed back to the source. |
+| | |
+| | Linux packet generator is a tool to generate packets at very |
+| | high speed in the kernel. pktgen is mainly used to drive and |
+| | LAN equipment test network. pktgen supports multi threading. |
+| | To generate random MAC address, IP address, port number UDP |
+| | packets, pktgen uses multiple CPU processors in the |
+| | different PCI bus (PCI, PCIe bus) with Gigabit Ethernet |
+| | tested (pktgen performance depends on the CPU processing |
+| | speed, memory delay, PCI bus speed hardware parameters), |
+| | Transmit data rate can be even larger than 10GBit/s. Visible |
+| | can satisfy most card test requirements. |
+| | |
+| | The mpstat command writes to standard output activities for |
+| | each available processor, processor 0 being the first one. |
+| | Global average activities among all processors are also |
+| | reported. The mpstat command can be used both on SMP and UP |
+| | machines, but in the latter, only global average activities |
+| | will be printed. |
+| | |
+| | (Ping is normally part of any Linux distribution, hence it |
+| | doesn't need to be installed. It is also part of the |
+| | Yardstick Docker image. |
+| | For example also a Cirros image can be downloaded from |
+| | cirros-image_, it includes ping. |
+| | |
+| | Pktgen and mpstat are not always part of a Linux |
+| | distribution, hence it needs to be installed. It is part of |
+| | the Yardstick Docker image. |
+| | As an example see the /yardstick/tools/ directory for how |
+| | to generate a Linux image with pktgen and mpstat included.) |
+| | |
++--------------+--------------------------------------------------------------+
+|test | This test case uses Pktgen to generate packet flow between |
+|description | two hosts for simulating network workloads on the SUT. |
+| | Ping packets (ICMP protocol's mandatory ECHO_REQUEST |
+| | datagram) are sent from a host VM to the target VM(s) to |
+| | elicit ICMP ECHO_RESPONSE, meanwhile CPU activities are |
+| | monitored by mpstat. |
+| | |
++--------------+--------------------------------------------------------------+
+|configuration | file: opnfv_yardstick_tc037.yaml |
+| | |
+| | Packet size is set to 64 bytes. |
+| | Number of ports: 1, 10, 50, 100, 300, 500, 750 and 1000. |
+| | The amount configured ports map from 2 up to 1001000 flows, |
+| | respectively. Each port amount is run two times, for 20 |
+| | seconds each. Then the next port_amount is run, and so on. |
+| | During the test CPU load on both client and server, and the |
+| | network latency between the client and server are measured. |
+| | The client and server are distributed on different hardware. |
+| | mpstat monitoring interval is set to 1 second. |
+| | ping packet size is set to 100 bytes. |
+| | For SLA max_ppm is set to 1000. |
+| | |
++--------------+--------------------------------------------------------------+
+|applicability | Test can be configured with different: |
+| | |
+| | * pktgen packet sizes; |
+| | * amount of flows; |
+| | * test duration; |
+| | * ping packet size; |
+| | * mpstat monitor interval. |
+| | |
+| | Default values exist. |
+| | |
+| | SLA (optional): max_ppm: The number of packets per million |
+| | packets sent that are acceptable to loose, not received. |
+| | |
++--------------+--------------------------------------------------------------+
+|references | Ping_ |
+| | |
+| | mpstat_ |
+| | |
+| | pktgen_ |
+| | |
+| | ETSI-NFV-TST001 |
+| | |
++--------------+--------------------------------------------------------------+
+|pre-test | The test case image needs to be installed into Glance |
+|conditions | with pktgen, mpstat included in it. |
+| | |
+| | No POD specific requirements have been identified. |
+| | |
++--------------+--------------------------------------------------------------+
+|test sequence | description and expected result |
+| | |
++--------------+--------------------------------------------------------------+
+|step 1 | Two host VMs are booted, as server and client. |
+| | |
++--------------+--------------------------------------------------------------+
+|step 2 | Yardstick is connected with the server VM by using ssh. |
+| | 'pktgen_benchmark', "ping_benchmark" bash script are copyied |
+| | from Jump Host to the server VM via the ssh tunnel. |
+| | |
++--------------+--------------------------------------------------------------+
+|step 3 | An IP table is setup on server to monitor for received |
+| | packets. |
+| | |
++--------------+--------------------------------------------------------------+
+|step 4 | pktgen is invoked to generate packet flow between two server |
+| | and client for simulating network workloads on the SUT. Ping |
+| | is invoked. Ping packets are sent from server VM to client |
+| | VM. mpstat is invoked, recording activities for each |
+| | available processor. Results are processed and checked |
+| | against the SLA. Logs are produced and stored. |
+| | |
+| | Result: Logs are stored. |
+| | |
++--------------+--------------------------------------------------------------+
+|step 5 | Two host VMs are deleted. |
+| | |
++--------------+--------------------------------------------------------------+
+|test verdict | Fails only if SLA is not passed, or if there is a test case |
+| | execution problem. |
+| | |
++--------------+--------------------------------------------------------------+