背景
我有两台实验室机器,我将其称为A和乙, 跑步RHEL 8.0。
我通过 SSH 进入A和乙通过 1 GbE 链路从我的 Windows 桌面访问,我将这个网络接口称为eth0。
A和乙它们之间还有一条直接的 10 GbE 光纤链路(直接连接,不涉及交换机或路由器)。我将这条链路的网络接口称为eth1. 这些 10 GbE 网络接口的 IP 地址A和乙是192.168.0.1/24和192.168.0.2/24, 分别。
我在用iperf3 v3.5测试单向 (B --> A)UDP吞吐量。MTU 设置为 1500,每个帧的有效载荷为 1500 字节,这样帧就可以尽可能大,而不会出现碎片。
和防火墙停止后,我的吞吐量约为7.00 Gbps和无丢帧。
如果我开始防火墙, 放eth1进入区域民众,并将适当的 UDP 端口(5201)添加到区域民众,我的吞吐量约为6.43 Gbps和无丢帧。
但是,如果我把eth1进入区域值得信赖(毫无疑问地通过了所有流量),我开始看到大量掉帧(约 15%)。
双方A和乙,CPU 18 被隔离,以便可供专用iperf3。
iperf3服务器调用(A) 是:
taskset -c 18 iperf3 -s -V --udp-counters-64bit
iperf3客户端调用(乙) 是:
taskset -c 18 iperf3 -u -V -b 0 --udp-counters-64bit -t 120 -c 191.168.0.1 -l 1472
我的问题
为什么使用时会出现大量丢帧防火墙区值得信赖(相对于民众,效果很好)?
根据收到的评论做出的补充说明
评论
iperf3 或firewalld 是否在该核心上达到 100% 的 CPU 使用率?您是否尝试过使用 dpdk-iperf?您是否也从 A->B 反向获得此行为?– Cpt.Whale
回复
使用区域时民众,iperf3运行速度约为88%接收端的 CPU 利用率约为95%发送端的 CPU 利用率。
使用区域时值得信赖,iperf3运行速度约为94%接收端的 CPU 利用率约为95%发送端的 CPU 利用率。但是...使用区域时值得信赖,接收方还有另一个高 CPU 利用率的进程,名为软中断。它运行在不同的核心上,并在100%CPU 利用率。
防火墙没有消耗足够的 CPU 来出现在列表中。
我没试过dpdk-iperf。
是的,反向也会出现同样的情况。(硬件和配置相同,因此这是预料之中的。)