同一 USB 千兆网卡,为何在 OSX 下速度只能发挥 70%?

2018-03-11 22:42:46 +08:00
 zer
Bus 001 Device 004: ID 0bda:8153 Realtek Semiconductor Corp. USB 10/100/1000 LAN  Serial: 001000001

通过 iPerf 测速的结果只有 650~700Mbps,但在另外一台 Win 主机上可以达到 950Mbps 以上,基本达到了千兆的速度。 我尝试排除程序干扰,卸载了 Little Snitch、关闭其他应用,重置 PRAM 后,速度依旧如此。 求解

iperf -u -c 10.0.0.101 -b 1000M -t 10 -i 1
------------------------------------------------------------
Client connecting to 10.0.0.101, UDP port 5001
Sending 1470 byte datagrams
UDP buffer size: 9.00 KByte (default)
------------------------------------------------------------
[  4] local 10.0.0.24 port 58162 connected with 10.0.0.101 port 5001
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0- 1.0 sec  79.3 MBytes   665 Mbits/sec
[  4]  1.0- 2.0 sec  79.2 MBytes   664 Mbits/sec
[  4]  2.0- 3.0 sec  78.3 MBytes   657 Mbits/sec
[  4]  3.0- 4.0 sec  78.1 MBytes   655 Mbits/sec
[  4]  4.0- 5.0 sec  78.0 MBytes   654 Mbits/sec
[  4]  5.0- 6.0 sec  78.4 MBytes   657 Mbits/sec
[  4]  6.0- 7.0 sec  78.0 MBytes   654 Mbits/sec
[  4]  7.0- 8.0 sec  78.0 MBytes   655 Mbits/sec
[  4]  8.0- 9.0 sec  78.3 MBytes   657 Mbits/sec
[  4]  9.0-10.0 sec  78.3 MBytes   657 Mbits/sec
[  4]  0.0-10.0 sec   784 MBytes   658 Mbits/sec
[  4] Sent 559112 datagrams
[  4] Server Report:
[  4]  0.0-10.0 sec   782 MBytes   656 Mbits/sec   0.196 ms  952/559111 (0.17%)
[  4]  0.0-10.0 sec  1 datagrams received out-of-order
6897 次点击
所在节点    macOS
21 条回复
mokeyjay
2018-03-11 22:47:01 +08:00
驱动问题吧,我的 XPS 装了黑苹果也有类似问题,MacOS 下网卡性能不如 Win 下
zer
2018-03-11 22:48:24 +08:00
@mokeyjay 我尝试安装 Realtek 官方驱动,也没有改善
cevincheung
2018-03-11 23:12:31 +08:00
网卡是千兆。USB 口不达标吧 2333 typec 试试
cevincheung
2018-03-11 23:15:06 +08:00
also24
2018-03-11 23:19:47 +08:00
最近搞了不少 Realtek 和亚信的网卡测试,直观感觉是 Realtek 的普遍不如亚信的,特别是对 Apple 设备的兼容性方面。
zer
2018-03-11 23:23:57 +08:00
@cevincheung 是千兆 Type-C 的,可以看到是 5Gb 的速度
@cevincheung 我用的就是这款
cevincheung
2018-03-11 23:29:17 +08:00
@zer #6 噗呲……本来还想入这款……
ptyfork
2018-03-11 23:51:01 +08:00
确定 windows 上也是用的 iperf,而且参数一致?
jedihy
2018-03-12 02:53:17 +08:00
应该是驱动问题,看看 CPU 是不是达到瓶颈了,虽然可能性很小。Win 和 Linux 都有一些 RSC,LSO 的优化不知道 OSX 上驱动支持不支持。
zer
2018-03-12 08:06:57 +08:00
@ptyfork 参数一致的
fork
2018-03-12 09:27:38 +08:00
@zer

我觉得跟驱动关系不大, 我在我的 iMac 27'上测自带的网卡,使用你的参数测试 UDP 速度也只能 680Mb 左右,但是如果使用 TCP 传输的话,能稳定在 930Mb。 为什么测试传输要用 UDP 呢?
zer
2018-03-12 09:34:54 +08:00
@fork UDP 方式可以看到延迟,用 TCP 的话,可能因为 TCP 的重传机制,真实的带宽会不准
dudesun
2018-03-12 10:42:49 +08:00
realtek 的 macos 上自带驱动,亚信需要安装驱动才能用。
我用的是
https://detail.tmall.com/item.htm?spm=a230r.1.14.18.7bde1ff0W54P1O&id=536844809545&ns=1&abbucket=7&skuId=3205234220735
tailf
2018-03-12 11:39:08 +08:00
Darwin 内核和 Windows 内核的网络驱动完全不同,可能是 Darwin 对这款芯片 UDP 支持的不到位。
fork
2018-03-12 12:00:22 +08:00
@zer

iperf 里面带宽数据里还会包括 tcp retransmission 的数? 方便指引一下 iperf 文档或者代码的位置吗?


@tailf 跟硬件驱动应该没什么关系,感觉跟内核的网络层关系更大一些,可以做个实验测试 loopback 的性能

在我机器上,loopback 都上不了千兆:

iperf -u -c 127.0.0.1 -b 1000M -t 10 -i 1
------------------------------------------------------------
Client connecting to 127.0.0.1, UDP port 5001
Sending 1470 byte datagrams
UDP buffer size: 9.00 KByte (default)
------------------------------------------------------------
[ 4] local 127.0.0.1 port 63929 connected with 127.0.0.1 port 5001
[ ID] Interval Transfer Bandwidth
[ 4] 0.0- 1.0 sec 82.8 MBytes 695 Mbits/sec
[ 4] 1.0- 2.0 sec 81.9 MBytes 687 Mbits/sec
[ 4] 2.0- 3.0 sec 82.9 MBytes 696 Mbits/sec
[ 4] 3.0- 4.0 sec 82.2 MBytes 690 Mbits/sec
[ 4] 4.0- 5.0 sec 83.2 MBytes 698 Mbits/sec
[ 4] 5.0- 6.0 sec 82.8 MBytes 695 Mbits/sec
[ 4] 6.0- 7.0 sec 83.1 MBytes 697 Mbits/sec
[ 4] 7.0- 8.0 sec 82.9 MBytes 696 Mbits/sec
[ 4] 8.0- 9.0 sec 83.2 MBytes 698 Mbits/sec
[ 4] 9.0-10.0 sec 82.9 MBytes 695 Mbits/sec
[ 4] 0.0-10.0 sec 828 MBytes 694 Mbits/sec
[ 4] Sent 591802 datagrams
read failed: Connection refused
[ 4] WARNING: did not receive ack of last datagram after 7 tries.



tcp 轻松上 40Gb

iperf -c localhost -i 1
------------------------------------------------------------
Client connecting to localhost, TCP port 5001
TCP window size: 144 KByte (default)
------------------------------------------------------------
[ 5] local 127.0.0.1 port 56463 connected with 127.0.0.1 port 5001
[ ID] Interval Transfer Bandwidth
[ 5] 0.0- 1.0 sec 4.61 GBytes 39.6 Gbits/sec
[ 5] 1.0- 2.0 sec 4.73 GBytes 40.7 Gbits/sec
[ 5] 2.0- 3.0 sec 4.74 GBytes 40.7 Gbits/sec
[ 5] 3.0- 4.0 sec 4.80 GBytes 41.2 Gbits/sec
[ 5] 4.0- 5.0 sec 4.79 GBytes 41.2 Gbits/sec
[ 5] 5.0- 6.0 sec 4.78 GBytes 41.0 Gbits/sec
[ 5] 6.0- 7.0 sec 4.76 GBytes 40.9 Gbits/sec
[ 5] 7.0- 8.0 sec 4.80 GBytes 41.2 Gbits/sec
[ 5] 8.0- 9.0 sec 4.77 GBytes 41.0 Gbits/sec
[ 5] 9.0-10.0 sec 4.78 GBytes 41.0 Gbits/sec
[ 5] 0.0-10.0 sec 47.6 GBytes 40.9 Gbits/sec
fork
2018-03-12 12:03:41 +08:00
刚才又试了一下, 用 iperf3 能快一点:

iperf3 -c 127.0.0.1 -u -b 3000M
Connecting to host 127.0.0.1, port 5201
warning: Block size 16332 > sending socket buffer size 9216
Increasing socket buffer size to 17356
[ 5] local 127.0.0.1 port 63066 connected to 127.0.0.1 port 5201
[ ID] Interval Transfer Bitrate Total Datagrams
[ 5] 0.00-1.00 sec 357 MBytes 3.00 Gbits/sec 22952
[ 5] 1.00-2.00 sec 358 MBytes 3.00 Gbits/sec 22958
[ 5] 2.00-3.00 sec 358 MBytes 3.00 Gbits/sec 22962
[ 5] 3.00-4.00 sec 358 MBytes 3.00 Gbits/sec 22967
[ 5] 4.00-5.00 sec 357 MBytes 3.00 Gbits/sec 22947
[ 5] 5.00-6.00 sec 358 MBytes 3.00 Gbits/sec 22970
[ 5] 6.00-7.00 sec 358 MBytes 3.00 Gbits/sec 22961
[ 5] 7.00-8.00 sec 358 MBytes 3.00 Gbits/sec 22967
[ 5] 8.00-9.00 sec 358 MBytes 3.00 Gbits/sec 22956
[ 5] 9.00-10.00 sec 357 MBytes 3.00 Gbits/sec 22952
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Jitter Lost/Total Datagrams
[ 5] 0.00-10.00 sec 3.49 GBytes 3.00 Gbits/sec 0.000 ms 0/229592 (0%) sender
[ 5] 0.00-10.00 sec 1.57 GBytes 1.35 Gbits/sec 0.019 ms 126536/229592 (55%) receiver
zer
2018-03-12 13:52:34 +08:00
@fork iperf2 可以通过-e 参数看到 tcp retransmit,但 iPerf3 通过-i 参数可以看到
参考来源:
https://fasterdata.es.net/performance-testing/network-troubleshooting-tools/iperf/
zer
2018-03-14 10:23:41 +08:00
昨天入了苹果官网销售的 Belkin Type-C 千兆网卡,速度依旧没有改善,这网卡的芯片也是 Realtek 的,但是具体型号和网易这款不一样。
我在安全模式下试了一次,也几乎没有变化。
bao3
2018-03-14 10:42:50 +08:00
别纠结这个了,同样的 wifi,同样的系统,同样的软件,同一个网卡,用 udp 测试就是慢,大约会是 tcp 的 70%左右,我是 win,经常要测试地铁 pis 无线
zer
2018-03-14 14:01:44 +08:00
@bao3 我是有线千兆,同样测试在 pc 到 mac、mac 到 nas,速度都能达到千兆的速度,即使是 UDP。没理由使用 mac 到 mac 的时候,达不到千兆

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

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

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

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

© 2021 V2EX