1.问题现象:
环境:x.x.x.1作为client, x.x.x2作为server;
命令:
Iperf -s -p 3389 -i 1 -V
Iperf -c 12.23.2.6 -P 64 -i 1 -t 9999 -M 6000 -w 2M -p 3389 -l 32k
打开接收端idx合并;
现象:指定发送区大小为64K,性能可到40Gbps;
指定发送区大小为6K,性能到35Gbps;
指定发送区大小为32K,性能到32Gbps;
- 问题分析
使用fpga_ovs_bandwidth.py -t mac 发现分流均匀时也存在该问题;
使用fpga_ovs_bandwidth.py - t ovs 发现host侧给virtio的反压较多导致;
通过代码分析,TSO内直通bpass报文和分片报文的mux调度有问题;
修改前调度方式是: N个分片报文--直通报文--N个分片报文--直通报文--(整个分片后的报文与直通报文的调度);
修改后调度方式是: 第0个分片报文--直通报文--第1个分片报文--直通报文--(分片报文的RR调度)
- 问题解决
改成RR调度,同时后级也增要有buf接收缓存报文;
- 测试结果:
除多流情况下光口带来的反压的情况,上板测试各种包长和窗口参数下性能均能满足要求为43Gbps左右;时延和之前测试的一样整个路径RTT时延为180us左右;
对各端口自带宽:
最终性能: