我在 BF3 上运行simple_fwd_vnf应用程序时遇到了一个问题。我按照文档配置了端口:将 SF4 和 p0 添加到网桥br1,将 SF3 和 pf0hpf 添加到网桥br2。使用 另一个主机的testpmd 的 txonly 模式向当前主机发送数据包,我观察到启动 SF3 和 SF2 之间的存在流量,但包率明显下降。这可能是什么原因造成的?是否缺少某些配置导致流表无法卸载,还是说SF的能力有限?
OVS bridge:pf0hpf->SF5->simple_fwd_vnf->SF4->p0
此外,我观察到一个奇怪的现象:当使用 testpmd 发送数据包时,在接收端运行 simple_fwd_vnf,如果我设置更大的数据包长度(例如 1024 字节),发送端的数据包率会在11Mpps 左右,simple_fwd_vnf 就可以正常运行。SF5与SF4之间的流量正常。而如果我减少包长哪怕是到900,发送端包率会到13Mpps,SF5和SF4之间的包率会快速下跌到到0.6Mpps。
我尝试用固定包长64的报文来发包,同时通过调整发送端tx队列来调整包率。我也发现了发送队列的个数在4和5之间时,SF5和SF4之间的包率也有断崖式下降。这个现象是否说明包率上升到一定阈值会影响DOCA Flow 应用的正常运行?是否因为SF的配置错误导致其同时无法处理太多报文?
这个问题困扰了我很久,希望得到您的帮助。@YanNVIDIA
包长为1024时,使用sar -n DEV 1命令的结果:
tx:
17:29:03 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s %ifutil
17:29:04 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
17:29:04 oob_net0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
17:29:04 tmfifo_net0 9.00 14.00 0.86 4.77 0.00 0.00 0.00 0.00
17:29:04 p0 11635037.00 11725124.00 11680483.47 11770926.79 0.00 0.00 0.00 96.43
17:29:04 p1 1.00 0.00 0.12 0.00 0.00 0.00 1.00 0.00
17:29:04 pf0hpf 11725105.00 11634970.00 11725105.00 11634970.00 0.00 0.00 0.00 96.05
17:29:04 en3f0pf0sf4 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
17:29:04 enp3s0f0s2 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
17:29:04 en3f0pf0sf3 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
17:29:04 enp3s0f0s3 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
17:29:04 ovs-doca 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
17:29:04 ovsbr1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
rx
21:01:13 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s %ifutil
21:01:14 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
21:01:14 oob_net0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
21:01:14 tmfifo_net0 8.00 8.00 0.52 4.93 0.00 0.00 0.00 0.00
21:01:14 p0 11907254.00 11825841.00 11953761.69 11871985.96 0.00 0.00 0.00 97.93
21:01:14 p1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
21:01:14 ovs-doca 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
21:01:14 pf0hpf 11836601.00 11836630.00 11836601.00 11836630.00 0.00 0.00 0.00 96.97
21:01:14 pf1hpf 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
21:01:14 en3f0pf0sf0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
21:01:14 enp3s0f0s0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
21:01:14 en3f1pf1sf0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
21:01:14 enp3s0f1s0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
21:01:14 en3f0pf0sf4 11857532.00 11937010.00 11857532.00 11937010.00 0.00 0.00 0.00 97.79
21:01:14 enp3s0f0s4 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
21:01:14 en3f0pf0sf5 11878084.00 11878104.00 11878084.00 11878104.00 0.00 0.00 0.00 97.31
21:01:14 enp3s0f0s5 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
21:01:14 br1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
21:01:14 br2 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
包长为900时,使用sar -n DEV 1命令的结果:
tx:
17:31:31 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s %ifutil
17:31:32 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
17:31:32 oob_net0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
17:31:32 tmfifo_net0 5.00 5.00 0.32 4.16 0.00 0.00 0.00 0.00
17:31:32 p0 60998.00 13774383.00 53848.24 12160196.59 0.00 0.00 0.00 99.62
17:31:32 p1 2.00 0.00 0.21 0.00 0.00 0.00 2.00 0.00
17:31:32 pf0hpf 13774472.00 61071.00 12106469.53 53674.89 0.00 0.00 0.00 99.18
17:31:32 en3f0pf0sf2 1.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
17:31:32 enp3s0f0s2 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
17:31:32 en3f0pf0sf3 1.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
17:31:32 enp3s0f0s3 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
17:31:32 ovs-doca 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
17:31:32 ovsbr1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
rx:
21:04:05 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s %ifutil
21:04:06 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
21:04:06 oob_net0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
21:04:06 tmfifo_net0 29.00 43.00 1.87 8.30 0.00 0.00 0.00 0.00
21:04:06 p0 13895777.00 61263.00 12267367.40 54083.74 0.00 0.00 0.00 100.49
21:04:06 p1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
21:04:06 ovs-doca 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
21:04:06 pf0hpf 64259.00 64260.00 56477.64 56478.52 0.00 0.00 0.00 0.46
21:04:06 pf1hpf 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
21:04:06 en3f0pf0sf0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
21:04:06 enp3s0f0s0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
21:04:06 en3f1pf1sf0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
21:04:06 enp3s0f1s0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
21:04:06 en3f0pf0sf4 60122.00 12221279.00 52841.60 10741358.50 0.00 0.00 0.00 87.99
21:04:06 enp3s0f0s4 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
21:04:06 en3f0pf0sf5 62652.00 62644.00 55065.23 55058.20 0.00 0.00 0.00 0.45
21:04:06 enp3s0f0s5 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
21:04:06 br1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
21:04:06 br2 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
下面是一些相关信息,希望帮助您定位:
root@localhost:/home/ubuntu# sudo ovs-dpctl show
system@ovs-system:
lookups: hit:402709 missed:5390360 lost:4637436
flows: 1
masks: hit:5811697 total:1 hit/pkt:1.00
cache: hit:401769 hit-rate:6.94%
caches:
masks-cache: size:256
port 0: ovs-system (internal)
port 1: p1
port 2: ovsbr2 (internal)
port 3: p0
port 4: br1 (internal)
port 5: br2 (internal)
port 6: pf0hpf
port 7: pf1hpf
port 8: en3f0pf0sf4
port 9: en3f0pf0sf5
root@localhost:/opt/mellanox/doca/applications# sudo ovs-vsctl list Open_vSwitch
_uuid : a0c32fa2-e289-4a0f-bbf5-627e64cbbba1
bridges : [086cbd16-1d65-4282-838c-09655fca09de, a1c1d2ea-895d-4808-992c-2f8a3ef98595]
cur_cfg : 377
datapath_types : [doca, netdev, system]
datapaths : { }
db_version : “8.5.1”
doca_initialized : true
doca_version : “3.0.0058”
dpdk_initialized : true
dpdk_version : “MLNX_DPDK 22.11.2504.1.0”
external_ids : {hostname=localhost.localdomain, rundir=“/var/run/openvswitch”, system-id=“206ee97f-1ad9-4f0d-b6db-963b74694411”}
iface_types : [bareudp, doca, docavdpa, docavhostuser, docavhostuserclient, dpdk, dpdkvhostuser, dpdkvhostuserclient, erspan, geneve, gre, gtpu, internal, ip6erspan, ip6gre, lisp, patch, srv6, stt, system, tap, vxlan]
manager_options :
next_cfg : 377
other_config : {doca-init=“true”, hw-offload=“true”}
ovs_version : “3.0.0-0056-25.04-based-3.3.5”
ssl :
statistics : {}
system_type : ubuntu
system_version : “22.04”
root@localhost:/opt/mellanox/doca/applications# ovs-vsctl show
a0c32fa2-e289-4a0f-bbf5-627e64cbbba1
Bridge br2
datapath_type: netdev
Port pf0hpf
Interface pf0hpf
type: dpdk
options: {n_rxq=“32”, n_txq=“32”}
Port en3f0pf0sf5
Interface en3f0pf0sf5
type: dpdk
options: {n_rxq=“32”, n_txq=“32”}
Port br2
Interface br2
type: internal
Bridge br1
datapath_type: netdev
Port en3f0pf0sf4
Interface en3f0pf0sf4
type: dpdk
options: {n_rxq=“32”, n_txq=“32”}
Port br1
Interface br1
type: internal
Port p0
Interface p0
type: dpdk
options: {n_rxq=“32”, n_txq=“32”}
ovs_version: “3.0.0-0056-25.04-based-3.3.5”
