From 842a5bbc053c09a3338f5d0796fa2d20aac3a498 Mon Sep 17 00:00:00 2001 From: Jo¶rgen Karlsson Date: Mon, 4 Jan 2016 14:30:10 +0100 Subject: Add test case description and task file for TC038 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit JIRA: YARDSTICK-214 Change-Id: I3a2358e8c36755a684f09524bd6fc8af9bf43f60 Signed-off-by: Jo¶rgen Karlsson (cherry picked from commit c27b74456831c0f7c827b4840649a898d66cd52f) --- docs/yardstick/opnfv_yardstick_tc038.rst | 88 +++++++++++++++++++++++ tests/opnfv/test_cases/opnfv_yardstick_tc038.yaml | 83 +++++++++++++++++++++ 2 files changed, 171 insertions(+) create mode 100644 docs/yardstick/opnfv_yardstick_tc038.rst create mode 100644 tests/opnfv/test_cases/opnfv_yardstick_tc038.yaml diff --git a/docs/yardstick/opnfv_yardstick_tc038.rst b/docs/yardstick/opnfv_yardstick_tc038.rst new file mode 100644 index 000000000..583555ede --- /dev/null +++ b/docs/yardstick/opnfv_yardstick_tc038.rst @@ -0,0 +1,88 @@ +************************************* +Yardstick Test Case Description TC038 +************************************* ++-----------------------------------------------------------------------------+ +|Network Performance | ++==============+==============================================================+ +|test case id | OPNFV_YARDSTICK_TC038_NW PERF | ++--------------+--------------------------------------------------------------+ +|metric | Number of flows, latency, throughput, CPU load, packet loss | ++--------------+--------------------------------------------------------------+ +|test purpose | To evaluate the IaaS network performance with regards to | +| | flows and throughput, such as if and how different amounts | +| | of flows matter for the throughput between hosts on different| +| | compute blades. 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 trends. Test results, | +| | graphs ans similar shall be stored for comparison reasons and| +| | product evolution understanding between different OPNFV | +| | versions and/or configurations. | ++--------------+--------------------------------------------------------------+ +|configuration | file: opnfv_yardstick_tc038.yaml | +| | | +| | Packet size: 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 ten 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 HW. | +| | | +| | For SLA max_ppm is set to 1000. | ++--------------+--------------------------------------------------------------+ +|test tool | pktgen | +| | | +| | (Pktgen is not always part of a Linux distribution, hence it | +| | needs to be installed. It is part of the Yardstick Glance | +| | image. | +| | As an example see the /yardstick/tools/ directory for how | +| | to generate a Linux image with pktgen included.) | +| | | +| | ping | +| | | +| | Ping is normally part of any Linux distribution, hence it | +| | doesn't need to be installed. It is also part of the | +| | Yardstick Glance image. | +| | (For example also a Cirros image can be downloaded from | +| | https://download.cirros-cloud.net, it includes ping) | +| | | +| | mpstat | +| | | +| | (Mpstat is not always part of a Linux distribution, hence it | +| | needs to be installed. It is part of the Yardstick Glance | +| | image. | ++--------------+--------------------------------------------------------------+ +|references | Ping and Mpstat man pages | +| | | +| |https://www.kernel.org/doc/Documentation/networking/pktgen.txt| +| | | +| |ETSI-NFV-TST038 | ++--------------+--------------------------------------------------------------+ +|applicability | Test can be configured with different packet sizes, amount | +| | of flows and test duration. Default values exist. | +| | | +| |SLA (optional): | +| | max_ppm: The number of packets per million packets sent | +| | that are acceptable to lose, i.e. not received. | ++--------------+--------------------------------------------------------------+ +|pre-test | The test case image needs to be installed into Glance | +|conditions | with pktgen included in it. | +| | | +| | No POD specific requirements have been identified. | ++--------------+------+----------------------------------+--------------------+ +|test sequence | step | description | result | +| +------+----------------------------------+--------------------+ +| | 1 | The hosts are installed, as | Logs are stored | +| | | server and client. pktgen is | | +| | | invoked and logs are produced | | +| | | and stored. | | ++--------------+------+----------------------------------+--------------------+ +|test verdict | Fails only if SLA is not passed, or if there is a test case | +| | execution problem. | ++--------------+--------------------------------------------------------------+ diff --git a/tests/opnfv/test_cases/opnfv_yardstick_tc038.yaml b/tests/opnfv/test_cases/opnfv_yardstick_tc038.yaml new file mode 100644 index 000000000..7b72d1c1d --- /dev/null +++ b/tests/opnfv/test_cases/opnfv_yardstick_tc038.yaml @@ -0,0 +1,83 @@ +--- +# Yardstick TC038 config file +# Measure network throughput and packet loss using pktgen. +# Different amounts of flows are tested with, from 2 up to 1001000. +# All tests are run 10 times each. First 10 times with the least +# amount of ports, then 10 times with the next amount of ports, +# and so on until all packet sizes have been run with. +# +# During the measurements system load and network latency are +# recorded/measured using ping and mpstat, respectively. + +scenarios: +- + type: CPUload + run_in_background: true + + options: + interval: 1 + + host: demeter.yardstick-TC038 +- + type: CPUload + run_in_background: true + + options: + interval: 1 + + host: poseidon.yardstick-TC038 +- + type: Ping + run_in_background: true + + options: + packetsize: 100 + + host: demeter.yardstick-TC038 + target: poseidon.yardstick-TC038 + + sla: + max_rtt: 10 + action: monitor +{% for num_ports in [1, 10, 50, 100, 300, 500, 750, 1000] %} +- + type: Pktgen + options: + packetsize: 64 + number_of_ports: {{num_ports}} + duration: 20 + + host: demeter.yardstick-TC038 + target: poseidon.yardstick-TC038 + + runner: + type: Iteration + iterations: 10 + interval: 1 + + sla: + max_ppm: 1000 + action: monitor +{% endfor %} + +context: + name: yardstick-TC038 + image: yardstick-trusty-server + flavor: yardstick-flavor + user: ec2-user + + placement_groups: + pgrp1: + policy: "availability" + + servers: + demeter: + floating_ip: true + placement: "pgrp1" + poseidon: + floating_ip: true + placement: "pgrp1" + + networks: + test: + cidr: '10.0.1.0/24' -- cgit 1.2.3-korg