两台 pc 都是 rtl8169 千兆网卡 网线直连 在不同系统下结果不同 有没有技术大神 帮忙分析下 是什么问题
pc1 i5-2500 4G 内存+256 ssd
pc2 x5-z8350 2G 内存+ 32G emmc
1
orochix 2018-10-02 21:44:39 +08:00 via Android
网卡模式切换为 speed deplex 1.0gbps,不要全双工
|
3
FullBridgeRect 2018-10-02 23:49:48 +08:00 via Android
和双工网卡模式没什么关系当时我在 win 上测结果也很迷,反正用的时候能打满
|
4
ryd994 2018-10-03 01:42:04 +08:00 via Android
从你给的这四条数据,说明 Windows UDP RX 有问题
可能是协议栈开销比较大。Linux 的 UDP 栈确实写的很黑科技。 考虑检查网卡关于 receive side coalescing 的设置 加-P 8 再测,如果多连接性能可以,那就没什么大问题。因为实际使用中不会有人单连接 UDP 跑带宽。 还有加-l 1400 再测。因为 iperf 默认用 8k 包。会有分片,这可能带来性能问题。 |
5
hjc4869 2018-10-03 02:06:30 +08:00
RTL8169 换成 Intel 网卡再测下。
|
7
jedihy 2018-10-03 18:36:14 +08:00 via iPhone
@ryd994 Windows 的 RSC 是 TCP only。iperf -R 是 server 在发包。问题更可能在 server,或者说发的那一边。
楼主应该看看 CPU usage 和 iperf 打印的丢包数据。 perfmon 里面看看网卡的几个 counter,discard*的是不是 0。1G 的带宽什么优化都不用也是能跑满。 另外,winver 结果告知一下,我明天可以尝试 repro。 |
8
slwl123 OP @jedihy #7 PC2 cpu 不到 50%
这是 log https://pan.baidu.com/s/1kAG03iFDIm0CLZ72gWol8w perfmon 具体是哪几个计数器 能否说明下 谢谢 |
9
jedihy 2018-10-04 03:31:26 +08:00
|
10
slwl123 OP |
11
jedihy 2018-10-04 15:03:36 +08:00 via iPhone
这些包应该是丢在 pc1 了。先看 pc1 的 perfmon discarded 和 error 的 counter。在网卡设置里面增大一下接受缓存,看看有没有效果。如果 error counter > 0,关闭 pc2 网卡的 checksum offload。
|