两台 pc 直连 iperf3 测试 不同系统下结果差距很大

2018-10-02 21:06:01 +08:00
 slwl123

两台 pc 都是 rtl8169 千兆网卡 网线直连 在不同系统下结果不同 有没有技术大神 帮忙分析下 是什么问题

pc1 i5-2500 4G 内存+256 ssd
pc2 x5-z8350 2G 内存+ 32G emmc

3071 次点击
所在节点    问与答
12 条回复
orochix
2018-10-02 21:44:39 +08:00
网卡模式切换为 speed deplex 1.0gbps,不要全双工
slwl123
2018-10-02 23:06:13 +08:00
@orochix #1
就这几种模式
FullBridgeRect
2018-10-02 23:49:48 +08:00
和双工网卡模式没什么关系当时我在 win 上测结果也很迷,反正用的时候能打满
ryd994
2018-10-03 01:42:04 +08:00
从你给的这四条数据,说明 Windows UDP RX 有问题
可能是协议栈开销比较大。Linux 的 UDP 栈确实写的很黑科技。
考虑检查网卡关于 receive side coalescing 的设置
加-P 8 再测,如果多连接性能可以,那就没什么大问题。因为实际使用中不会有人单连接 UDP 跑带宽。
还有加-l 1400 再测。因为 iperf 默认用 8k 包。会有分片,这可能带来性能问题。
hjc4869
2018-10-03 02:06:30 +08:00
RTL8169 换成 Intel 网卡再测下。
slwl123
2018-10-03 10:09:14 +08:00
@ryd994 调了没效果 加-P 8 就连不上
jedihy
2018-10-03 18:36:14 +08:00
@ryd994 Windows 的 RSC 是 TCP only。iperf -R 是 server 在发包。问题更可能在 server,或者说发的那一边。

楼主应该看看 CPU usage 和 iperf 打印的丢包数据。
perfmon 里面看看网卡的几个 counter,discard*的是不是 0。1G 的带宽什么优化都不用也是能跑满。

另外,winver 结果告知一下,我明天可以尝试 repro。
slwl123
2018-10-03 22:31:56 +08:00
@jedihy #7 PC2 cpu 不到 50%
这是 log https://pan.baidu.com/s/1kAG03iFDIm0CLZ72gWol8w

perfmon 具体是哪几个计数器 能否说明下 谢谢
jedihy
2018-10-04 03:31:26 +08:00


你的 log 表明一半的包都丢了。你看一下图里面的 counter。
slwl123
2018-10-04 10:48:52 +08:00
@jedihy #9 为 pc2 perfmon
pc2 运行 iperf3 -s
pc1 运行 iperf3 -c -u -b 1000M -R
jedihy
2018-10-04 15:03:36 +08:00
这些包应该是丢在 pc1 了。先看 pc1 的 perfmon discarded 和 error 的 counter。在网卡设置里面增大一下接受缓存,看看有没有效果。如果 error counter > 0,关闭 pc2 网卡的 checksum offload。
slwl123
2018-10-04 16:45:13 +08:00
@jedihy #11 PC1 discarded 和 error 全是 0 网卡的接收缓存 128 发送缓存 512 全是最大值

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/494626

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX