Packet pROcessing Execution Engine (PROX) - Performance Characterization For NFVI User Guide
Packet pROcessing Execution Engine (PROX) - Performance Characterization For NFVI User Guide
Intel Corporation
Authors 1 Introduction
Yury Kylulin Properly designed Network Functions Virtualization Infrastructure (NFVI) environments
deliver high packet processing rates, which are also a required dependency for
Luc Provoost
onboarded network functions. NFVI testing methodology typically includes both
Petar Torre functionality testing and performance characterization testing, to ensure that NFVI both
exposes the correct APIs and is capable of packet processing.
This document describes how to use open source software tools to automate peak traffic
(also called saturation) throughput testing to characterize the performance of a
containerized NFVI system.
The text and examples in this document are intended for architects and testing engineers
for Communications Service Providers (CSPs) and their vendors. This document
describes tools used during development to evaluate whether or not a containerized
NFVI can perform the required rates of packet processing within set packet drop rates
and latency percentiles.
This document is part of the Network Transformation Experience Kit, which is available at
https://networkbuilders.intel.com/network-technologies/network-transformation-exp-
kits.
1
User Guide | Packet pROcessing eXecution Engine (PROX) - Performance Characterization for NFVI
Table of Contents
1 Introduction ................................................................................................................................................................................................................. 1
2 Overview ....................................................................................................................................................................................................................... 3
2.1 Test Framework .......................................................................................................................................................................................................................................3
2.2 Terminology ..............................................................................................................................................................................................................................................4
2.3 Reference Documentation ...................................................................................................................................................................................................................4
3 Ingredients ................................................................................................................................................................................................................... 4
3.1 Hardware Bill of Materials ....................................................................................................................................................................................................................4
3.2 Software Bill of Materials ......................................................................................................................................................................................................................4
4 Setup.............................................................................................................................................................................................................................. 5
4.1 Kubernetes Prerequisites for Sensitive Workload Placement ................................................................................................................................................ 5
4.2 Build PROX Containerized Image ......................................................................................................................................................................................................5
4.3 Push Image to Repository.....................................................................................................................................................................................................................5
4.4 Configure Metrics Collection and Visualization............................................................................................................................................................................ 6
6 Summary .....................................................................................................................................................................................................................10
Figures
Figure 1. Test Framework Software ................................................................................................................................................................................................................... 3
Tables
Table 1. Terminology ............................................................................................................................................................................................................................................. 4
Table 2. Reference Documents........................................................................................................................................................................................................................... 4
2
User Guide | Packet pROcessing eXecution Engine (PROX) - Performance Characterization for NFVI
2 Overview
Traditionally, establishing repeatable, reliable performance characterization required highly-trained engineers in specially-prepared
labs, usually equipped with proprietary hardware load generators and test suites. Such traditional characterization methodologies
faced challenges measuring the virtualized environment while also taking into account the network workload needs (which are
onboarded at a later stage). This document describes a method to automate a typically manual process which can require extensive
and expensive test gear. Note that these tests are not a substitute for acceptance, validation, or compliance tests.
This document describes how to use open source tools to characterize the performance of a containerized NFVI system. The key
software components are an engine called Packet pROcessing eXecution (PROX) and automation scripts.
The PROX engine is a Data Plane Development Kit* (DPDK*) application that performs packet operations in a highly configurable
manner and displays performance statistics. In the setup described in this guide, the PROX engine is packaged as a bare metal
container, however, in other environments it can be packaged as a container in Virtual Machines (VMs) or without containers in a
GuestOS VM.
The automation test scripts cover options from simple test runs to more complex test cases.
3
User Guide | Packet pROcessing eXecution Engine (PROX) - Performance Characterization for NFVI
2.2 Terminology
Table 1. Terminology
ABBREVIATION DESCRIPTION
CNF Cloud native Network Function
CSP Communications Service Provider
DPDK* Data Plane Development Kit*
K8s* Kubernetes*
NFV Network Functions Virtualization
NFVI Network Functions Virtualization Infrastructure
OPNFV* Open Platform for NFV*
PROX Packet pROcessing eXecution engine
SR-IOV Single Root Input/Output Virtualization
QoS Quality of Service
VM Virtual Machine
REFERENCE SOURCE
Readme with requirements https://git.opnfv.org/samplevnf/plain/VNFs/DPPD-PROX/helper-
scripts/rapid/README.k8s
Packet pROcessing eXecution engine (PROX) documentation https://wiki.opnfv.org/pages/viewpage.action?pageId=12387840
Automation script code https://git.opnfv.org/samplevnf/tree/VNFs/DPPD-PROX/helper-scripts/rapid
Automation script documentation https://wiki.opnfv.org/display/SAM/Rapid+scripting
Container Bare Metal for 2 Generation Intel® Xeon® Scalable
nd
https://builders.intel.com/docs/networkbuilders/container-bare-metal-for-2nd-
Processor Reference Architecture generation-intel-xeon-scalable-processor.pdf
Container Bare Metal for 2nd Generation Intel® Xeon® Scalable https://github.com/intel/container-experience-kits
Processor Reference Architecture Setup Scripts
3 Ingredients
This section lists the hardware and software that were used to develop this document. You can use the same setup or a similar one,
depending on your needs.
Note: These tools are designed for the development stage. Current versions have not completed rigorous security and other
validation tests required for software used in production environments.
4
User Guide | Packet pROcessing eXecution Engine (PROX) - Performance Characterization for NFVI
4 Setup
This section explains how to prepare the PROX tool for performance characterization of NFVI when running bare metal containers.
If you want to measure similar performance characterization tests of NFVI where containers run in VMs, then you must correctly
map the data path up to the point where packets are delivered inside the VMs, and from there into pods where the containerized
PROX runs.
which is the size of the base CentOS image plus DPDK and PROX binaries, and scripts. Note that exact size varies based on your
host OS.
If you use another image repository, then appropriately tag and push the image into it. For example, if you use Docker* Hub*, use
the command: docker push username/reponame for the compressed size of ~82MB.
5
User Guide | Packet pROcessing eXecution Engine (PROX) - Performance Characterization for NFVI
6
User Guide | Packet pROcessing eXecution Engine (PROX) - Performance Characterization for NFVI
This will run the tests on two or more specified nodes. If you want to run the tests on the same node, then ensure that the Generator
and Swap pods run on different cores. This can be configured in *.test depending on the chosen test case.
Create test pods with the command:
./createrapidk8s.py
Check that this succeeded with the command:
kubectl get pod | awk ' NR==1 { print $0 } $0~"pod-rapid" { print $0 } '
View the output and note that the STATUS should change to “Running”:
7
User Guide | Packet pROcessing eXecution Engine (PROX) - Performance Characterization for NFVI
This can be visualized with Prometheus (http://$PUSHGWIP:9090/graph) as shown below for the metric ReceivedPPS:
8
User Guide | Packet pROcessing eXecution Engine (PROX) - Performance Characterization for NFVI
After several test runs, click on the Graph tab to see output similar to the following:
For an improved visualization, use Grafana (http://$PUSHGWIP:3000) after you create a new dashboard. The example below uses
the Query from Prometheus using the ReceivedPPS metric, saved as “NFVI perf char”, with the required refresh rate and time
window:
You can change the initial PROX speed in the *.test files as needed, where 100 units means 100% of 10Gbps. This is especially
important if you don’t have networking optimized for dataplane traffic.
After your tests are complete, you can stop running PROX pods with the command:
for p in ` kubectl get pod | awk ' $0~"pod-rapid" { print $1 } ' `; do kubectl delete pod $p;
done
To further modify test cases and write new ones, refer to the online documentation and code listed in Table 2.
9
User Guide | Packet pROcessing eXecution Engine (PROX) - Performance Characterization for NFVI
6 Summary
This document described the methodology and open source tools used to characterize the performance of a containerized NFVI
system during the development stage. The benefits of this approach include:
• Measuring from the tenant’s CNF point of view, not from a hardware generator outside the containerized environment.
• Using the same image and same engine used for various types of tests: as generator, swap/reflector or for more advanced
testing (VNF/CNF Resilience Testing with PROX configured as impair gateway dropping and/or delaying packets).
• Packaging the same engine in various ways: as container bare metal, containers in VM, or a typical guest VM.
• Moving the test environment from Pets to Cattle, that is, from customized individual components to interchangeable ones.
Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel
microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the
availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent
optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel micro architecture are
reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific
instruction sets covered by this notice.
No product or component can be absolutely secure.
Intel technologies may require enabled hardware, software or service activation.
Intel does not control or audit third-party data. You should consult other sources to evaluate accuracy.
No license (express or implied, by estoppel or otherwise) to any intellectual property rights is granted by this document.
Intel disclaims all express and implied warranties, including without limitation, the implied warranties of merchantability, fitness for a particular
purpose, and non-infringement, as well as any warranty arising from course of performance, course of dealing, or usage in trade.
The products described may contain design defects or errors known as errata which may cause the product to deviate from published specifications.
Current characterized errata are available on request.
Copies of documents which have an order number and are referenced in this document may be obtained by calling 1-800-548-4725 or by visiting
www.intel.com/design/literature.htm.
© Intel Corporation. Intel, the Intel logo, Xeon, and other Intel marks are trademarks of Intel Corporation or its subsidiaries. *Other names and
brands may be claimed as the property of others.
0420/DN/PTI/PDF 621829-001US
10