目前 TCP 内网可达 20G 。 但是 UDP 内网只有 2G 不到。
速度相差 18G ,目前没有头绪,请问大佬们,我这种情况是什么原因呢。
测试命令:iperf3 -c 100.100.100.2 -P 10 -b 100000G -R -u
系统参数 sysctl
net.core.rmem_max = 16777216 net.core.rmem_default = 16777216 net.core.wmem_max = 16777216 net.core.wmem_default = 16777216 net.core.default_qdisc = fq net.ipv4.tcp_congestion_control = bbr net.ipv4.udp_mem = 756207 1024438 1536424 net.ipv4.udp_rmem_min = 513920 net.ipv4.udp_wmem_min = 513920
1
lhbc 2023-07-31 08:59:10 +08:00 via Android
测试 udp 需要用-l 设一下缓冲区大小
|
2
artnowben 2023-07-31 10:08:09 +08:00
建议用 dperf 测一下
|
3
qyz0123321 2023-07-31 10:38:04 +08:00
iperf3 在测试 tcp 的时候并不是真实发送数据包,而是通过延迟+window 扩展计算出来的一个理论带宽值,你可以 iftop 观察一下就知道了。
udp 因为没有这些参数,都是硬跑出来的一个值,能够比较准确反映出带宽。 你可以放一个大文件两边使用 wget 两边测试一下,我感觉 tcp 最多也就能跑 2G 。 |
4
ysc3839 2023-07-31 10:44:23 +08:00 via Android
@qyz0123321 你确定不是真实发送?我这里测试用 iftop 看能看到有较大速度。
|
5
intlinfo OP @qyz0123321 好的,但是 wget 测的也是 tcp 流。我是想测试 udp 的真实带宽。
|
6
starryloki 2023-07-31 12:28:05 +08:00
@intlinfo 用支持 http3 的 curl 可以曲线救国,我记得我用 iperf 测试 UDP 的时候需要配置的参数挺多的
|
7
artnowben 2023-07-31 14:39:32 +08:00
带宽比较大的情况下,dperf 是比较好的测试工具,应为 dperf 使用 DPDK ,直接从网卡上 IO ,避免了 OS 的开销,能够准确测量出极限带宽。
|