Network Function Virtualization, a network architecture where virtual machines replace components such as firewalls or load balancers with virtual machines, can be very sensitive to network latency or throughput. A typical NFV architecture under KVM uses components such as Open vSwitch, DPDK and vhost-user; despite the pecularities (such as handling packets in user space during whole process, consuming multiple cores with 100% to polling the network ports), this can provide good network performance. However, configuration of the various components and of the virtual machine itself is very important to obtain the best possible network performance.
In this talk we will show how to configure Open vSwitch, DPDK and vhost-user, and present throughput and latency results that quantify the impact of hugepages and multiqueue and the importance of using the "PREEMPT_RT" realtime kernel.