add yardstick iruya 9.0.0 release notes
[yardstick.git] / docs / testing / user / userguide / opnfv_yardstick_tc037.rst
1 .. This work is licensed under a Creative Commons Attribution 4.0 International
2 .. License.
3 .. http://creativecommons.org/licenses/by/4.0
4 .. (c) OPNFV, Ericsson AB and others.
5
6 *************************************
7 Yardstick Test Case Description TC037
8 *************************************
9
10 .. _cirros-image: https://download.cirros-cloud.net
11 .. _Ping: https://linux.die.net/man/8/ping
12 .. _pktgen: https://www.kernel.org/doc/Documentation/networking/pktgen.txt
13 .. _mpstat: http://www.linuxcommand.org/man_pages/mpstat1.html
14
15 +-----------------------------------------------------------------------------+
16 |Latency, CPU Load, Throughput, Packet Loss                                   |
17 |                                                                             |
18 +--------------+--------------------------------------------------------------+
19 |test case id  | OPNFV_YARDSTICK_TC037_LATENCY,CPU LOAD,THROUGHPUT,           |
20 |              | PACKET LOSS                                                  |
21 |              |                                                              |
22 +--------------+--------------------------------------------------------------+
23 |metric        | Number of flows, latency, throughput, packet loss            |
24 |              | CPU utilization percentage, CPU interrupt per second         |
25 |              |                                                              |
26 +--------------+--------------------------------------------------------------+
27 |test purpose  | The purpose of TC037 is to evaluate the IaaS compute         |
28 |              | capacity and network performance with regards to CPU         |
29 |              | utilization, packet flows and network throughput, such as if |
30 |              | and how different amounts of flows matter for the throughput |
31 |              | between hosts on different compute blades, and the CPU load  |
32 |              | variation.                                                   |
33 |              |                                                              |
34 |              | Typically e.g. the performance of a vSwitch depends on the   |
35 |              | number of flows running through it. Also performance of      |
36 |              | other equipment or entities can depend on the number of      |
37 |              | flows or the packet sizes used                               |
38 |              |                                                              |
39 |              | The purpose is also to be able to spot the trends.           |
40 |              | Test results, graphs and similar shall be stored for         |
41 |              | comparison reasons and product evolution understanding       |
42 |              | between different OPNFV versions and/or configurations.      |
43 |              |                                                              |
44 +--------------+--------------------------------------------------------------+
45 |test tool     | Ping, Pktgen, mpstat                                         |
46 |              |                                                              |
47 |              | Ping is a computer network administration software utility   |
48 |              | used to test the reachability of a host on an Internet       |
49 |              | Protocol (IP) network. It measures the round-trip time for   |
50 |              | packet sent from the originating host to a destination       |
51 |              | computer that are echoed back to the source.                 |
52 |              |                                                              |
53 |              | Linux packet generator is a tool to generate packets at very |
54 |              | high speed in the kernel. pktgen is mainly used to drive and |
55 |              | LAN equipment test network. pktgen supports multi threading. |
56 |              | To generate random MAC address, IP address, port number UDP  |
57 |              | packets, pktgen uses multiple CPU processors in the          |
58 |              | different PCI bus (PCI, PCIe bus) with Gigabit Ethernet      |
59 |              | tested (pktgen performance depends on the CPU processing     |
60 |              | speed, memory delay, PCI bus speed hardware parameters),     |
61 |              | Transmit data rate can be even larger than 10GBit/s. Visible |
62 |              | can satisfy most card test requirements.                     |
63 |              |                                                              |
64 |              | The mpstat command writes to standard output activities for  |
65 |              | each available processor, processor 0 being the first one.   |
66 |              | Global average activities among all processors are also      |
67 |              | reported. The mpstat command can be used both on SMP and UP  |
68 |              | machines, but in the latter, only global average activities  |
69 |              | will be printed.                                             |
70 |              |                                                              |
71 |              | (Ping is normally part of any Linux distribution, hence it   |
72 |              | doesn't need to be installed. It is also part of the         |
73 |              | Yardstick Docker image.                                      |
74 |              | For example also a Cirros image can be downloaded from       |
75 |              | cirros-image_, it includes ping.                             |
76 |              |                                                              |
77 |              | Pktgen and mpstat are not always part of a Linux             |
78 |              | distribution, hence it needs to be installed. It is part of  |
79 |              | the Yardstick Docker image.                                  |
80 |              | As an example see the /yardstick/tools/ directory for how    |
81 |              | to generate a Linux image with pktgen and mpstat included.)  |
82 |              |                                                              |
83 +--------------+--------------------------------------------------------------+
84 |test          | This test case uses Pktgen to generate packet flow between   |
85 |description   | two hosts for simulating network workloads on the SUT.       |
86 |              | Ping packets (ICMP protocol's mandatory ECHO_REQUEST         |
87 |              | datagram) are sent from a host VM to the target VM(s) to     |
88 |              | elicit ICMP ECHO_RESPONSE, meanwhile CPU activities are      |
89 |              | monitored by mpstat.                                         |
90 |              |                                                              |
91 +--------------+--------------------------------------------------------------+
92 |configuration | file: opnfv_yardstick_tc037.yaml                             |
93 |              |                                                              |
94 |              | Packet size is set to 64 bytes.                              |
95 |              | Number of ports: 1, 10, 50, 100, 300, 500, 750 and 1000.     |
96 |              | The amount configured ports map from 2 up to 1001000 flows,  |
97 |              | respectively. Each port amount is run two times, for 20      |
98 |              | seconds each. Then the next port_amount is run, and so on.   |
99 |              | During the test CPU load on both client and server, and the  |
100 |              | network latency between the client and server are measured.  |
101 |              | The client and server are distributed on different hardware. |
102 |              | mpstat monitoring interval is set to 1 second.               |
103 |              | ping packet size is set to 100 bytes.                        |
104 |              | For SLA max_ppm is set to 1000.                              |
105 |              |                                                              |
106 +--------------+--------------------------------------------------------------+
107 |applicability | Test can be configured with different:                       |
108 |              |                                                              |
109 |              |  * pktgen packet sizes;                                      |
110 |              |  * amount of flows;                                          |
111 |              |  * test duration;                                            |
112 |              |  * ping packet size;                                         |
113 |              |  * mpstat monitor interval.                                  |
114 |              |                                                              |
115 |              | Default values exist.                                        |
116 |              |                                                              |
117 |              | SLA (optional): max_ppm: The number of packets per million   |
118 |              | packets sent that are acceptable to loose, not received.     |
119 |              |                                                              |
120 +--------------+--------------------------------------------------------------+
121 |references    | Ping_                                                        |
122 |              |                                                              |
123 |              | mpstat_                                                      |
124 |              |                                                              |
125 |              | pktgen_                                                      |
126 |              |                                                              |
127 |              | ETSI-NFV-TST001                                              |
128 |              |                                                              |
129 +--------------+--------------------------------------------------------------+
130 |pre-test      | The test case image needs to be installed into Glance        |
131 |conditions    | with pktgen, mpstat included in it.                          |
132 |              |                                                              |
133 |              | No POD specific requirements have been identified.           |
134 |              |                                                              |
135 +--------------+--------------------------------------------------------------+
136 |test sequence | description and expected result                              |
137 |              |                                                              |
138 +--------------+--------------------------------------------------------------+
139 |step 1        | Two host VMs are booted, as server and client.               |
140 |              |                                                              |
141 +--------------+--------------------------------------------------------------+
142 |step 2        | Yardstick is connected with the server VM by using ssh.      |
143 |              | 'pktgen_benchmark', "ping_benchmark" bash script are copyied |
144 |              | from Jump Host to the server VM via the ssh tunnel.          |
145 |              |                                                              |
146 +--------------+--------------------------------------------------------------+
147 |step 3        | An IP table is setup on server to monitor for received       |
148 |              | packets.                                                     |
149 |              |                                                              |
150 +--------------+--------------------------------------------------------------+
151 |step 4        | pktgen is invoked to generate packet flow between two server |
152 |              | and client for simulating network workloads on the SUT. Ping |
153 |              | is invoked. Ping packets are sent from server VM to client   |
154 |              | VM. mpstat is invoked, recording activities for each         |
155 |              | available processor. Results are processed and checked       |
156 |              | against the SLA. Logs are produced and stored.               |
157 |              |                                                              |
158 |              | Result: Logs are stored.                                     |
159 |              |                                                              |
160 +--------------+--------------------------------------------------------------+
161 |step 5        | Two host VMs are deleted.                                    |
162 |              |                                                              |
163 +--------------+--------------------------------------------------------------+
164 |test verdict  | Fails only if SLA is not passed, or if there is a test case  |
165 |              | execution problem.                                           |
166 |              |                                                              |
167 +--------------+--------------------------------------------------------------+