OVS队列选择策略优化
当虚拟机是多队列的场景下,虚拟机qperf时延工具运行所在的CPU可能和virtio-net input中断的CPU不在同一个上面,此时虚拟机会涉及IPI中断陷出,从而增加了时延开销。所以对于时延敏感型场景,可以更改OVS侧发包队列的选择逻辑,新增发送模式,当PMD接收到来自虚拟机的网络包时,记录其五元组信息以及队列ID。下次往虚拟机发送包时,根据对应五元组信息匹配到对应的队列ID,这样就可以尽可能的减少虚拟机IPI陷出的情况,减少网络收发包的时延。
- 下载DPDK 24.11源码。
1
git clone https://github.com/DPDK/dpdk.git -b v24.11
- 下载DPDK队列选择优化补丁。
1 2
git clone https://gitee.com/kunpeng_compute/boostkit_-virtualization.git cd boostkit_virtualization/dpdk/dpdk-24.11
- 将补丁打入DPDK源码。
1 2 3
cp [Virtualization_Loss_Optimization]0001-Adding-a-new-transmission-mode-TXQ_REQ.patch ../../dpdk cd ../../dpdk patch -p1 < [Virtualization_Loss_Optimization]0001-Adding-a-new-transmission-mode-TXQ_REQ.patch
- 编译DPDK。
1
meson -Ddisable_drivers=mlx4 --prefix=/usr --libdir=/usr/lib64 --bindir=/usr/bin --sbindir=/usr/sbin --includedir=/usr/include/dpdk -Dc_args="-O2 -g -fstack-protector-strong" -Dc_link_args="-g -Wl,-z,relro,-z,now,-z,noexecstack" -Denable_kmods=true build
- 开启DPDK队列选择优化。
1
ovs-vsctl set Interface tap0 other_config:tx-steering=txfollowrx
如需关闭使用命令:
1
ovs-vsctl remove Interface tap0 other_config tx-steering
父主题: OVS+DPDK优化