AlmaLinux 9.1上WireGuard隧道IPv4转发吞吐量受限问题咨询
AlmaLinux 9.1上WireGuard隧道IPv4转发吞吐量受限问题咨询
各位好,我碰到了一个WireGuard隧道转发的性能瓶颈问题,想跟大家请教下可能的原因和优化方向:
- 目前的核心现象:我局域网内的客户端PC通过WireGuard隧道连接远程主机时,吞吐量最高大概在250Mbps左右,而且波动非常大,在150-300Mbps之间来回跳,需要很长时间才能稳定下来。用iperf3测试客户端到远程主机的吞吐量,结果完全一致。
- 我的环境情况:本地的WireGuard隧道部署在一台VM上,对接的是Vultr的云VM。但有意思的是,直接在两台WireGuard主机之间跑iperf3的话,吞吐量能轻松跑到650Mbps以上,而且CPU看起来也不是瓶颈——这个速度我是能接受的,主要想搞明白中间转发场景下性能受限的机制到底是什么。
- 被推翻的初步猜测:我一开始以为是AlmaLinux 9.1的IPv4转发性能拖了后腿,毕竟客户端连远程主机时,中间的AL9.1服务器既要做数据包转发又要做WireGuard加密。但后来我单独测试了Linux主机的纯子网转发,能跑满千兆,这个猜测就不成立了,也说明近期应该没有普遍的AL9.1转发性能问题。
- 补充几个关键细节:
- WireGuard主机之间的往返延迟是10ms,我知道Linux的接收窗口是自适应的;
- 测试时用了3条iperf3流,调整流的数量也不会改变总吞吐量;
- 试过UDP测试,看起来能跑到更高的速率,但丢包率极高,实际有效吞吐量还是卡在250Mbps左右;
- 我的sysctl.conf里只配置了
net.ipv4.ip_forward=1,没有其他相关的网络参数。
下面是客户端到远程WireGuard节点的iperf3测试完整输出:
Connecting to host 10.0.33.1, port 5201 [ 4] local 192.168.10.50 port 60045 connected to 10.0.33.1 port 5201 [ 6] local 192.168.10.50 port 60046 connected to 10.0.33.1 port 5201 [ 8] local 192.168.10.50 port 60047 connected to 10.0.33.1 port 5201 [ ID] Interval Transfer Bandwidth [ 4] 0.00-1.00 sec 10.4 MBytes 86.6 Mbits/sec [ 6] 0.00-1.00 sec 9.25 MBytes 77.2 Mbits/sec [ 8] 0.00-1.00 sec 5.62 MBytes 47.0 Mbits/sec [SUM] 0.00-1.00 sec 25.2 MBytes 211 Mbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ 4] 1.00-2.00 sec 11.2 MBytes 94.5 Mbits/sec [ 6] 1.00-2.00 sec 9.50 MBytes 79.8 Mbits/sec [ 8] 1.00-2.00 sec 10.0 MBytes 84.0 Mbits/sec [SUM] 1.00-2.00 sec 30.8 MBytes 258 Mbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ 4] 2.00-3.00 sec 9.62 MBytes 81.0 Mbits/sec [ 6] 2.00-3.00 sec 9.50 MBytes 79.9 Mbits/sec [ 8] 2.00-3.00 sec 9.25 MBytes 77.8 Mbits/sec [SUM] 2.00-3.00 sec 28.4 MBytes 239 Mbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ 4] 3.00-4.00 sec 9.38 MBytes 78.4 Mbits/sec [ 6] 3.00-4.00 sec 10.1 MBytes 84.7 Mbits/sec [ 8] 3.00-4.00 sec 10.1 MBytes 84.7 Mbits/sec [SUM] 3.00-4.00 sec 29.6 MBytes 248 Mbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ 4] 4.00-5.00 sec 8.38 MBytes 70.2 Mbits/sec [ 6] 4.00-5.00 sec 7.88 MBytes 66.0 Mbits/sec [ 8] 4.00-5.00 sec 10.2 MBytes 85.9 Mbits/sec [SUM] 4.00-5.00 sec 26.5 MBytes 222 Mbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ 4] 5.00-6.00 sec 9.75 MBytes 81.9 Mbits/sec [ 6] 5.00-6.00 sec 7.12 MBytes 59.8 Mbits/sec [ 8] 5.00-6.00 sec 11.0 MBytes 92.4 Mbits/sec [SUM] 5.00-6.00 sec 27.9 MBytes 234 Mbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ 4] 6.00-7.01 sec 11.1 MBytes 93.1 Mbits/sec [ 6] 6.00-7.01 sec 6.25 MBytes 52.3 Mbits/sec [ 8] 6.00-7.01 sec 11.0 MBytes 92.0 Mbits/sec [SUM] 6.00-7.01 sec 28.4 MBytes 237 Mbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ 4] 7.01-8.00 sec 10.0 MBytes 84.1 Mbits/sec [ 6] 7.01-8.00 sec 6.38 MBytes 53.6 Mbits/sec [ 8] 7.01-8.00 sec 8.00 MBytes 67.3 Mbits/sec [SUM] 7.01-8.00 sec 24.4 MBytes 205 Mbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ 4] 8.00-9.01 sec 10.8 MBytes 89.8 Mbits/sec [ 6] 8.00-9.01 sec 9.25 MBytes 77.3 Mbits/sec [ 8] 8.00-9.01 sec 9.38 MBytes 78.3 Mbits/sec [SUM] 8.00-9.01 sec 29.4 MBytes 245 Mbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ 4] 9.01-10.00 sec 8.75 MBytes 73.9 Mbits/sec [ 6] 9.01-10.00 sec 9.25 MBytes 78.1 Mbits/sec [ 8] 9.01-10.00 sec 8.00 MBytes 67.5 Mbits/sec [SUM] 9.01-10.00 sec 26.0 MBytes 219 Mbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bandwidth [ 4] 0.00-10.00 sec 99.4 MBytes 83.4 Mbits/sec sender [ 4] 0.00-10.00 sec 99.2 MBytes 83.2 Mbits/sec receiver [ 6] 0.00-10.00 sec 84.5 MBytes 70.9 Mbits/sec sender [ 6] 0.00-10.00 sec 84.4 MBytes 70.8 Mbits/sec receiver [ 8] 0.00-10.00 sec 92.6 MBytes 77.7 Mbits/sec sender [ 8] 0.00-10.00 sec 92.5 MBytes 77.6 Mbits/sec receiver [SUM] 0.00-10.00 sec 276 MBytes 232 Mbits/sec sender [SUM] 0.00-10.00 sec 276 MBytes 232 Mbits/sec receiver iperf Done.
备注:内容来源于stack exchange,提问作者Brian
相关产品推荐
相关产品推荐

