Files
dragonflow/doc/source/specs/performance_testing.rst
XieYingYun c2d40ce606 Optimize the link address
Use https instead of http to ensure the safety without containing our
account/password information.Deleted some invalid URLs.

Change-Id: Ieec4253dc5c5caae136837533dc1aae9c86bd4e5
2017-11-06 18:31:21 -07:00

169 lines
4.6 KiB
ReStructuredText

..
This work is licensed under a Creative Commons Attribution 3.0 Unported
License.
https://creativecommons.org/licenses/by/3.0/legalcode
==============================================
DragonFlow Data Plane Performance Testing Spec
==============================================
This spec describes the data plane performance testing of DragonFLow.
The spec includes testing scenarios, network link quality definition, testing
methodology and testing tools and its usage.
Testing scenarios
=================
DragonFlow data plane performance benchmark in different scenarios:
- East-West data plane performance testing
- North-South data plane performance testing
- Source-NAT (SNAT) data plane performance testing
- High load network traffic
- High go-to-control traffic
- Monday morning storm
- And more..
East-West data plane performance testing
========================================
In this test we want to measure the network link quality in east-west traffic
in different scenarios, both in single node and multi-node, combined with high
number of flows handled by DragonFlow.
Environment setup
-----------------
1. Create two new private networks
2. Create 100 vms/dockers on each node
3. Create a vm with iPerf client
4. Create 4 vms with iPerf server:
1. Same host traffic
* L2 scenario
* L3 scenario
2. Cross host traffic
* L2 scenario
* L3 scenario
Tests description
-----------------
Generate 10 consequence tests with 5 seconds sleep between each test towards
each iPerf server.
Run this test with different network encapsulation protocols:
- STT, GRE, VxLan, Geneve
- Run this test using Vlan tagging
Tests types
-----------
Measure line Bandwidth, Datagram loss, Jitter and Latency.
Total number of tests
---------------------
4 x 5 x 4 = 80 tests
North-South data plane performance testing
==========================================
In this test we want to measure the North-South network link quality, combined
with high number of flows handled by DragonFlow controller.
Environment setup
-----------------
1. Create two new private networks
2. Create 100 vms/dockers on each node
3. Create a vm with iPerf client
4. Create 2 vms with iPerf server with a floating IP:
* Same host as the iPerf client.
* Cross host as the iPerf client.
Test description & scenarios
----------------------------
* Generate 10 consequence tests with 5 seconds sleep between each test towards
the server.
Tests types
-----------
Measure Bandwidth and rate, Datagram loss, Jitter and Latency
Total number of tests
---------------------
2 x 4 = 8 tests
Source-NAT (SNAT) data plane performance testing
================================================
In this test we want to measure the SNAT (source network address translation)
network link quality, combined with high number of flows handled by DF.
Environment setup
-----------------
1. Create two new private networks
2. Create 100 vms/dockers on each node
3. Create 2 vms with iPerf client.
4. Run iPerf server on external IP
Test description & scenarios
----------------------------
* From each of the iPerf clients, generate 10 consequence tests with 5
seconds sleep between each test towards the server.
Tests types
-----------
Measure Bandwidth and rate, Datagram loss, Jitter and Latency
Total number of tests
---------------------
2 x 4 = 8 tests
Testing methodology
===================
- For measuring DragonFlow networking improvement/overhead, all tests have to
be executed with & without DF (with DVR. OVN as well?).
- The created VMs should report when there are up, so it will be possible to
count the successfully created VMs in the automation.
Network link quality definition
===============================
The quality of a link can be tested as follows:
* Bandwidth - measured through iPerf TCP test
* Datagram loss - measured through iPerf UDP test. A good link quality: the
packet loss should not go over 1%.
* Jitter (latency variation) - measured through iPerf UDP test
* Latency (response time or RTT) - measured using the Ping command
Tools & usage
=============
We will use iPerf for most of the tests. iPerf is a tool to measure the
bandwidth and the quality of a network link.
Also we will use scripts that we will develop in order to automate the
environment setup tests execution.
iPerf
=====
The network link is delimited by two hosts running iPerf.
Bandwidth performance
---------------------
iperf -c Dest_IP
Reverse mode bandwidth performance
----------------------------------
iperf -c Dest_IP -r
Datagram loss & Jitter
----------------------
Client: iperf -c Dest_IP -u
Server: iperf -s -u -i 1
Latency (Ping)
--------------
ping -c 10 -i 0.2 -w 3 DEST_IP