鲲鹏社区首页
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

OVS队列选择策略优化

当虚拟机是多队列的场景下,虚拟机qperf时延工具运行所在的CPU可能和virtio-net input中断的CPU不在同一个上面,此时虚拟机会涉及IPI中断陷出,从而增加了时延开销。所以对于时延敏感型场景,可以更改OVS侧发包队列的选择逻辑,新增发送模式,当PMD接收到来自虚拟机的网络包时,记录其五元组信息以及队列ID。下次往虚拟机发送包时,根据对应五元组信息匹配到对应的队列ID,这样就可以尽可能的减少虚拟机IPI陷出的情况,减少网络收发包的时延。

  1. 下载DPDK 24.11源码。
    1
    git clone https://github.com/DPDK/dpdk.git -b v24.11
    
  2. 下载DPDK队列选择优化补丁。
    1
    2
    git clone https://gitee.com/kunpeng_compute/boostkit_-virtualization.git
    cd boostkit_virtualization/dpdk/dpdk-24.11
    
  3. 将补丁打入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
    
  4. 编译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
    
  5. 开启DPDK队列选择优化。
    1
    ovs-vsctl set Interface tap0 other_config:tx-steering=txfollowrx
    

    如需关闭使用命令:

    1
    ovs-vsctl remove Interface tap0 other_config tx-steering