Virtualization is everywhere and virtual switches are the cornerstone to connect Virtual Machines (VMs) to virtual or physical networks.
As the network load for Virtual Network Functions (VNFs) increases, the virtual switch becomes the bottleneck for the entire Network Function Virtualization Infrastructure (NFVI), leaving high performance VNFs stuck in the mud.
In order to mitigate this risk and offer near bare-metal performance for VNFs running in VMs, operators can be tempted to bypass the virtual switch and offer direct host PCI access to the VNFs using techniques such as SR-IOV and PCI Passthrough. This approach increases performance but reduces virtualization flexibility.
To keep virtualization flexibility with performance, we will compare the following two software approaches that accelerate the Linux virtual switch, called Open vSwitch (OVS), provided by openvswitch.org.
OVS-DPDK: An accelerated data plane based on DPDK available since 2016.
While both share the same objective to accelerate OVS, 6WIND Virtual Accelerator also provides additional features, which I summarize following the test results below.
Getting started, on any given day, a familiar conversation between 6WIND and our customers is:
Customer: “How do you compare in term of performance with regards to OVS-DPDK?”
Customer: “How much better?”
It’s not an easy answer as it is difficult to compare 6WIND Virtual Accelerator performance numbers produced in our lab to OVS-DPDK numbers available on the Internet; platforms are different, configurations are different, traffic generators are different and software generations are different.
To tackle this problem, 6WIND identified OPNFV’s project, VSperf, which is an open source automated test-framework that allows us to compare virtual switch data plane performance in an “apples-to-apples” fashion.
Our comparative tests with VSperf addressed all these requirements:
Same hardware while using identical hardware resources
Same virtual switch configuration
Same traffic generator
Comparable software generation
So we started VSperf Virtual Accelerator integration to get a fair, reproducible apples-to-apples comparison.
All tests results are for 64 byte packets using 1 core and 2 cores respectively (hyperthreading enabled).
1) Physical to Physical
This first test scenario is to validate the virtual switch raw performance. You will note it’s not a realistic use case as no VNF is running.
Performance is shown in Mpps according to the number of flows using 1 core (hyperthreading enabled).
OVS-DPDK’s cache implementation keeps a steady performance with up to 1024 flows but performance decreases by 40% with more than 1024 flows.
6WIND Virtual Accelerator performance is 66% higher with one flow configured and we maintain 80% performance improvement using 204800 flows.
2) Physical to VM to Physical
This second scenario uses testpmd, a DPDK example application that does pure packet forwarding, as the VNF. The objective is to make sure the VNF is not limiting the virtual switch performance. In a real scenario the VNF could be a load balancer, a firewall, an IPsec gateway or any VNF forwarding traffic.
6WIND Virtual Accelerator outperforms OVS-DPDK by 21% in this scenario.
3) Physical to VM to VM to Physical
This third scenario uses two VNFs connected through the virtual switch of the same host. This happens in service chaining scenarios where the traffic is processed by different VNFs implementing different network functions.
6WIND Virtual Accelerator outperforms OVS-DPDK by 32% in this scenario. Virtual Accelerator also scales almost linearly with the number of cores while OVS-DPDK cannot scale with additional cores.
4) 6WIND Virtual Accelerator Key Differentiators: Features and Performance
Today we’ve shown that Virtual Accelerator delivers leading performance for DPDK-based virtual networking software. But there are feature advantages to make your life easier as well:
Linux compatibility for easy integration with Linux applications and tools beyond OVS-DPDK, which is limited to OVS-only offload
Full-featured Layer 2/3 networking and switching including Flow-based (OpenFlow) virtual switching and packet processing