5.24. OpenStack tenant networking performance¶
status: | ready |
---|---|
version: | 1.0 |
Abstract: | This document describes test plan for measuring performance of tenant networking of the OpenStack cloud. |
Conventions: |
|
5.24.1. Test Plan¶
This test plan covers base topologies (L2, L3 east-west and L3 north-south) and collection of common network parameters like bandwidth and latency.
5.24.1.1. Test Environment¶
5.24.1.1.1. Preparation¶
This test plan is performed against existing OpenStack cloud.
5.24.1.1.2. Environment description¶
The environment description includes hardware specification of servers, network parameters, operation system and OpenStack deployment characteristics.
5.24.1.1.2.1. Hardware¶
This section contains list of all types of hardware nodes.
Parameter | Value | Comments |
model | e.g. Supermicro X9SRD-F | |
CPU | e.g. 6 x Intel(R) Xeon(R) CPU E5-2620 v2 @ 2.10GHz | |
role | e.g. compute or network |
5.24.1.1.2.2. Network¶
This section contains list of interfaces and network parameters. For complicated cases this section may include topology diagram and switch parameters.
Parameter | Value | Comments |
network role | e.g. provider or public | |
card model | e.g. Intel | |
driver | e.g. ixgbe | |
speed | e.g. 10G or 1G | |
MTU | e.g. 9000 | |
offloading modes | e.g. default |
5.24.1.1.2.3. Software¶
This section describes installed software.
Parameter | Value | Comments |
OS | e.g. Ubuntu 14.04.3 | |
OpenStack | e.g. Liberty | |
Hypervisor | e.g. KVM | |
Neutron plugin | e.g. ML2 + OVS | |
L2 segmentation | e.g. VLAN or VxLAN or GRE | |
virtual routers | e.g. legacy or HA or DVR |
5.24.1.2. Test Case 1: single node L2 instance-to-instance performance¶
5.24.1.2.1. Description¶
This test case is executed on a single pair of instances launched on one compute node and plugged into the same tenant network. The measurement is done during 60 seconds, average values are calculated.
5.24.1.2.2. List of performance metrics¶
Priority | Value | Measurement Units | Description |
---|---|---|---|
1 | Latency | ms | The network latency |
1 | TCP bandwidth | Mbits/s | TCP network bandwidth |
1 | UDP bandwidth | packets per sec | Number of UDP packets with 32 bytes payload |
2 | UDP delay jitter | ms | Packet delay variation |
2 | UDP packet loss | % | Percentage of lost UDP packets |
2 | TCP retransmits | packets per sec | Number of retransmitted TCP packets |
5.24.1.3. Test Case 2: L2 instance-to-instance performance¶
5.24.1.3.1. Description¶
This test case is executed on a single pair of instances launched on different compute nodes and plugged into the same tenant network. The measurement is done during 60 seconds, average values are calculated.
5.24.1.3.2. List of performance metrics¶
Priority | Value | Measurement Units | Description |
---|---|---|---|
1 | Latency | ms | The network latency |
1 | TCP bandwidth | Mbits/s | TCP network bandwidth |
1 | UDP bandwidth | packets per sec | Number of UDP packets with 32 bytes payload |
2 | UDP delay jitter | ms | Packet delay variation |
2 | UDP packet loss | % | Percentage of lost UDP packets |
2 | TCP retransmits | packets per sec | Number of retransmitted TCP packets |
5.24.1.4. Test Case 3: L2 concurrent performance¶
5.24.1.4.1. Description¶
This test case is executed on pairs of instances. Every instance is deployed on a different compute nodes (one instance per node). All instances are plugged into the same tenant network. The measurement is run simultaneously on different number of instances, starting with one pair and increasing in geometric progression until all pairs are involved. On every iteration the measurement is run during 60 seconds, then average numbers are stored.
5.24.1.4.2. List of performance metrics¶
Test case result is series of following measurements done at different levels of concurrency. The output may be shown in table form and/or as chart showing dependency of parameters from concurrency.
Priority | Value | Measurement Units | Description |
---|---|---|---|
1 | Latency | ms | The network latency |
1 | TCP bandwidth | Mbits/s | TCP network bandwidth |
1 | UDP bandwidth | packets per sec | Number of UDP packets with 32 bytes payload |
2 | UDP delay jitter | ms | Packet delay variation |
2 | UDP packet loss | % | Percentage of lost UDP packets |
2 | TCP retransmits | packets per sec | Number of retransmitted TCP packets |
5.24.1.5. Test Case 4: single node L3 east-west instance-to-instance performance¶
5.24.1.5.1. Description¶
This test case is executed on a single pair of instances launched on one compute node and plugged into different tenant networks. Networks are connected by a single router. The measurement is done during 60 seconds, average values are calculated.
5.24.1.5.2. List of performance metrics¶
Priority | Value | Measurement Units | Description |
---|---|---|---|
1 | Latency | ms | The network latency |
1 | TCP bandwidth | Mbits/s | TCP network bandwidth |
1 | UDP bandwidth | packets per sec | Number of UDP packets with 32 bytes payload |
2 | UDP delay jitter | ms | Packet delay variation |
2 | UDP packet loss | % | Percentage of lost UDP packets |
2 | TCP retransmits | packets per sec | Number of retransmitted TCP packets |
5.24.1.6. Test Case 5: L3 east-west instance-to-instance performance¶
5.24.1.6.1. Description¶
This test case is executed on a single pair of instances launched on different compute nodes and plugged into different tenant networks. Networks are connected by a single router. The measurement is done during 60 seconds, average values are calculated.
5.24.1.6.2. List of performance metrics¶
Priority | Value | Measurement Units | Description |
---|---|---|---|
1 | Latency | ms | The network latency |
1 | TCP bandwidth | Mbits/s | TCP network bandwidth |
1 | UDP bandwidth | packets per sec | Number of UDP packets with 32 bytes payload |
2 | UDP delay jitter | ms | Packet delay variation |
2 | UDP packet loss | % | Percentage of lost UDP packets |
2 | TCP retransmits | packets per sec | Number of retransmitted TCP packets |
5.24.1.7. Test Case 6: L3 east-west concurrent performance¶
5.24.1.7.1. Description¶
This test case is executed on pairs of instances. Every instance is deployed on a different compute nodes (one instance per node). All instances are grouped by pairs, one member is plugged in tenant network A, the other into tenant network B. Networks A and B are plugged into a single router. The measurement is run simultaneously on different number of instances, starting with one pair and increasing in geometric progression until all pairs are involved. On every iteration the measurement is run during 60 seconds, then average numbers are stored.
5.24.1.7.2. List of performance metrics¶
Test case result is series of following measurements done at different levels of concurrency. The output may be shown in table form and/or as chart showing dependency of parameters from concurrency.
Priority | Value | Measurement Units | Description |
---|---|---|---|
1 | Latency | ms | The network latency |
1 | TCP bandwidth | Mbits/s | TCP network bandwidth |
1 | UDP bandwidth | packets per sec | Number of UDP packets with 32 bytes payload |
2 | UDP delay jitter | ms | Packet delay variation |
2 | UDP packet loss | % | Percentage of lost UDP packets |
2 | TCP retransmits | packets per sec | Number of retransmitted TCP packets |
5.24.1.8. Test Case 7: single node L3 north-south instance-to-instance performance¶
5.24.1.8.1. Description¶
This test case is executed on a single pair of instances launched on one compute node and plugged into different tenant networks. Each networks is connected to own router, thus traffic goes via external network. The destination instance is reached by floating IP. The measurement is done during 60 seconds, average values are calculated.
5.24.1.8.2. List of performance metrics¶
Priority | Value | Measurement Units | Description |
---|---|---|---|
1 | Latency | ms | The network latency |
1 | TCP bandwidth | Mbits/s | TCP network bandwidth |
1 | UDP bandwidth | packets per sec | Number of UDP packets with 32 bytes payload |
2 | UDP delay jitter | ms | Packet delay variation |
2 | UDP packet loss | % | Percentage of lost UDP packets |
2 | TCP retransmits | packets per sec | Number of retransmitted TCP packets |
5.24.1.9. Test Case 8: L3 north-south instance-to-instance performance¶
5.24.1.9.1. Description¶
This test case is executed on a single pair of instances launched on different compute nodes and plugged into different tenant networks. Each networks is connected to own router, thus traffic goes via external network. The destination instance is reached by floating IP. The measurement is done during 60 seconds, average values are calculated.
5.24.1.9.2. List of performance metrics¶
Priority | Value | Measurement Units | Description |
---|---|---|---|
1 | Latency | ms | The network latency |
1 | TCP bandwidth | Mbits/s | TCP network bandwidth |
1 | UDP bandwidth | packets per sec | Number of UDP packets with 32 bytes payload |
2 | UDP delay jitter | ms | Packet delay variation |
2 | UDP packet loss | % | Percentage of lost UDP packets |
2 | TCP retransmits | packets per sec | Number of retransmitted TCP packets |
5.24.1.10. Test Case 9: L3 north-south concurrent performance¶
5.24.1.10.1. Description¶
This test case is executed on pairs of instances. Every instance is deployed on a different compute nodes (one instance per node). All instances are grouped by pairs, one member is plugged into tenant network A, the other into tenant network B. Networks A and B are plugged into different routers. Instances from network B are reached via floating IP. The measurement is run simultaneously on different number of instances, starting with one pair and increasing in geometric progression until all pairs are involved. On every iteration the measurement is run during 60 seconds, then average numbers are stored.
5.24.1.10.2. List of performance metrics¶
Test case result is series of following measurements done at different levels of concurrency. The output may be shown in table form and/or as chart showing dependency of parameters from concurrency.
Priority | Value | Measurement Units | Description |
---|---|---|---|
1 | Latency | ms | The network latency |
1 | TCP bandwidth | Mbits/s | TCP network bandwidth |
1 | UDP bandwidth | packets per sec | Number of UDP packets with 32 bytes payload |
2 | UDP delay jitter | ms | Packet delay variation |
2 | UDP packet loss | % | Percentage of lost UDP packets |
2 | TCP retransmits | packets per sec | Number of retransmitted TCP packets |
5.24.1.11. Test Case 10: Neutron QoS testing¶
5.24.1.11.1. Description¶
This test case is used to verify Neutron QoS feature as scale. The feature allows to limit the traffic bandwidth in a particular network. To simplify testing instances are deployed in the same network (L2 domain). The target bandwidth is specified in kBits/s.
Note
In order to work Neutron QoS extension must be installed and properly configured.
5.24.1.11.2. List of performance metrics¶
Priority | Value | Measurement Units | Description |
---|---|---|---|
1 | Latency | ms | The network latency |
1 | TCP bandwidth | Mbits/s | TCP network bandwidth |
1 | UDP bandwidth | packets per sec | Number of UDP packets with 32 bytes payload |
2 | UDP delay jitter | ms | Packet delay variation |
2 | UDP packet loss | % | Percentage of lost UDP packets |
2 | TCP retransmits | packets per sec | Number of retransmitted TCP packets |
It’s expected that achieved TCP bandwidth is not higher that the one set in Neutron QoS policy.
5.24.2. Tools¶
This section contains tools that can be used to perform the test plan.
5.24.2.1. Shaker¶
This section describes how to perform OpenStack tenant networking performance with Shaker tool.
5.24.2.1.1. Test environment preparation¶
To run tests you will need a machine located outside of the cloud. This machine must be routable from OpenStack instances and need to have one open port to accept connections from Shaker agents. See more details in Shaker deployment guide.
Shaker is distributed as Python package and available through PyPi (https://pypi.python.org/pypi/pyshaker/). It is recommended to be installed inside virtualenv.
$ virtualenv venv
$ . venv/bin/activate
$ pip install pyshaker
The connection to OpenStack can be configured using standard openrc
file.
(Refer to http://docs.openstack.org/cli-reference/content/cli_openrc.html on
how to retrieve it). Alternatively the configuration can be passed to Shaker
via set of CLI parameters --os-tenant-name
, --os-username
,
--os-password
, --os-auth-url
and --os-region-name
. Connection to
SSL endpoints is configured by parameters --os-cacert
and
--os-insecure
. Note that it is highly recommended to run Shaker with admin
user. Use of non-admin user is also possible though, see
Running Shaker by non-admin user.
Before starting tests a master image must be built. The process downloads
Ubuntu cloud image, installs all necessary packages and stores snapshot into
Glance. This snapshot is used by shaker
to boot instances.
$ shaker-image-builder
Running shaker tool starts a server that accepts connections from
agents located on instances. In order to work user needs to specify host
address and port number. The result may be stored in raw format (--json
),
in ReST (--book
) or as interactive HTML report (--report
).
5.24.2.1.2. Test Case 1: L2 instance-to-instance performance¶
Test case specification: Test Case 2: L2 instance-to-instance performance
Execution:
shaker --server-endpoint <host:port> --scenario openstack/perf_l2 --book <report folder>
5.24.2.1.3. Test Case 2: L2 concurrent performance¶
Test case specification: Test Case 3: L2 concurrent performance
Execution:
shaker --server-endpoint <host:port> --scenario openstack/full_l2 --book <report folder>
5.24.2.1.4. Test Case 3: L3 east-west instance-to-instance performance¶
Test case specification: Test Case 5: L3 east-west instance-to-instance performance
Execution:
shaker --server-endpoint <host:port> --scenario openstack/perf_l3_east_west --book <report folder>
5.24.2.1.5. Test Case 4: L3 east-west concurrent performance¶
Test case specification: Test Case 6: L3 east-west concurrent performance
Execution:
shaker --server-endpoint <host:port> --scenario openstack/full_l3_east_west --book <report folder>
5.24.2.1.6. Test Case 5: L3 north-south instance-to-instance performance¶
Test case specification: Test Case 8: L3 north-south instance-to-instance performance
Execution:
shaker --server-endpoint <host:port> --scenario openstack/perf_l3_north_south --book <report folder>
5.24.2.1.7. Test Case 6: L3 north_south concurrent performance¶
Test case specification: Test Case 9: L3 north-south concurrent performance
Execution:
shaker --server-endpoint <host:port> --scenario openstack/full_l3_north_south --book <report folder>
5.24.2.1.8. Test Case 7: Neutron QoS testing¶
Test case specification: Test Case 10: Neutron QoS testing
Execution:
shaker --server-endpoint <host:port> --scenario openstack/qos/perf_l2 --book <report folder>
5.24.3. Reports¶
- Test plan execution reports: