转载请注明出处:http://blog.csdn.net/hliyuxin/article/details/52155136
OpenvSwitch 以其丰富的功能,作为多层虚拟交换机,已经广泛应用于云环境中。Open vSwitch的主要功能是为物理机上的VM提供二层网络接入,和云环境中的其它物理交换机并行工作在Layer 2。传统host ovs工作在内核态,与guest virtio的数据传输需要多次内核态和用户态的数据切换, 带来性能瓶颈. ovs-dpdk 结合了DPDK和vhost-user技术的优势,vhost-user是一个用户态的vhost-backend程序,从虚拟机到host上实现了数据的zero copy。DPDK 高性能(user space) 网卡驱动、大页内存、无锁化结构设计,这项技术已经被美团云的各类网关类产品使用, 早已实现了万兆网卡线速的性能。ovs-dpdk使vm到vm和nic到vm的整个数据传输都工作在用户态,极大的提升了ovs的性能.
我们在相同的软硬件环境下,对比ovs和ovs-dpdk的性能
- E5-2650 v2 @ 2.6G,16 core
- 128GB mem
- CentOS release 7
- Open vSwitch 2.4(dpdk), O2 build
- dpdk 2.2.0
- qemu 2.6.0
- pktgen
kernel ovs中断在每个core上打散,ovs-dpdk使用一个物理core转发数据。
测试一: 从一台Host用dpdk pktgen向另一台Host的dpdk nic发包,bridge转发数据包: