无法解释的千兆网络速度缓慢

Jos*_*hua 18 windows-server-2008 windows-7 slow-connection gigabit

更新

好的,我已经尝试了下面的答案,但没有任何改变。我已将笔记本电脑中的芯片组识别为 NVIDIA nForce 520。我为 nForce 520 下载了最新的 Vista x64 驱动程序(NVIDIA 还没有用于该芯片组的任何用于 Win 7 的驱动程序)。我试过安装随附的防火墙软件(认为它可能会干扰 - 不是)。我已经完全卸载了我的防病毒软件(我正在使用 Avast!)认为它的网络过滤器驱动程序可能会导致问题,这也没有帮助。

我把我的笔记本电脑带到我兄弟家,并能够通过他的 100Mbit 网络以 10 - 12 MB/s 的速度复制文件,所以我认为这不是硬件问题。

我已经运行了 iperf 并得到了一些令人惊讶的结果:
来自笔记本电脑的 iperf 发送到服务器(上传)

> iperf -c naru
------------------------------------------------------------
Client connecting to naru, TCP port 5001
TCP window size: 8.00 KByte (default)
------------------------------------------------------------
[328] local 192.168.7.100 port 8549 connected with 192.168.7.6 port 5001
[ ID] Interval       Transfer     Bandwidth
[328]  0.0-10.0 sec   162 MBytes   136 Mbits/sec

> iperf -c naru -w 64k
------------------------------------------------------------
Client connecting to naru, TCP port 5001
TCP window size: 64.0 KByte
------------------------------------------------------------
[328] local 192.168.7.100 port 8550 connected with 192.168.7.6 port 5001
[ ID] Interval       Transfer     Bandwidth
[328]  0.0-10.0 sec  1.06 GBytes   909 Mbits/sec
Run Code Online (Sandbox Code Playgroud)

iperf 从服务器发送到笔记本电脑(下载)

> iperf -c miyuki
------------------------------------------------------------
Client connecting to miyuki, TCP port 5001
TCP window size: 8.00 KByte (default)
------------------------------------------------------------
[256] local 192.168.7.6 port 51871 connected with 192.168.7.100 port 5001
[ ID] Interval       Transfer     Bandwidth
[256]  0.0-10.1 sec  25.2 MBytes  20.8 Mbits/sec

> iperf -c miyuki -w 64k
------------------------------------------------------------
Client connecting to miyuki, TCP port 5001
TCP window size: 64.0 KByte
------------------------------------------------------------
[256] local 192.168.7.6 port 51872 connected with 192.168.7.100 port 5001
[ ID] Interval       Transfer     Bandwidth
[256]  0.0-10.0 sec  21.1 MBytes  17.6 Mbits/sec
Run Code Online (Sandbox Code Playgroud)

为了比较这里是 HTPC 和服务器之间的 iperf 数字

Server: Naru, Host: CC (CC sends to Naru)
iperf -c naru:        0.0-10.0 sec   363 MBytes   305 Mbits/sec
iperf -c naru -w 64k: 0.0-10.0 sec  1.06 GBytes   912 Mbits/sec

Server: CC, Host: Naru (Naru sends to CC)
iperf -c cc:        0.0-10.0 sec   322 MBytes   270 Mbits/sec
iperf -c cc -w 64k: 0.0-10.0 sec  1020 MBytes   855 Mbits/sec
Run Code Online (Sandbox Code Playgroud)

使用wireshark 观看从服务器到笔记本电脑的传输会发现以下许多条目:

(:51aa is the server, :37a1 is the laptop)
No.   Time      Source                    Destination               Proto Info
37785 27.286240 fe80::3820:2199:1623:37a1 fe80::1569:8500:b24a:51aa  TCP  [TCP Dup ACK 37753#13] 8360 > microsoft-ds [ACK] Seq=80228 Ack=40489174 Win=64800 Len=0 SLE=40499254 SRE=40517974
37786 27.286258 fe80::3820:2199:1623:37a1 fe80::1569:8500:b24a:51aa  TCP  [TCP Dup ACK 37753#14] 8360 > microsoft-ds [ACK] Seq=80228 Ack=40489174 Win=64800 Len=0 SLE=40499254 SRE=40519414
37787 27.286277 fe80::3820:2199:1623:37a1 fe80::1569:8500:b24a:51aa  TCP  [TCP Dup ACK 37753#15] 8360 > microsoft-ds [ACK] Seq=80228 Ack=40489174 Win=64800 Len=0 SLE=40499254 SRE=40520854
37788 27.286295 fe80::3820:2199:1623:37a1 fe80::1569:8500:b24a:51aa  TCP  [TCP Dup ACK 37753#16] 8360 > microsoft-ds [ACK] Seq=80228 Ack=40489174 Win=64800 Len=0 SLE=40499254 SRE=40522294
37789 27.286313 fe80::3820:2199:1623:37a1 fe80::1569:8500:b24a:51aa  TCP  [TCP Dup ACK 37753#17] 8360 > microsoft-ds [ACK] Seq=80228 Ack=40489174 Win=64800 Len=0 SLE=40499254 SRE=40523734
37790 27.286332 fe80::3820:2199:1623:37a1 fe80::1569:8500:b24a:51aa  TCP  [TCP Dup ACK 37753#18] 8360 > microsoft-ds [ACK] Seq=80228 Ack=40489174 Win=64800 Len=0 SLE=40499254 SRE=40525174
37791 27.286351 fe80::3820:2199:1623:37a1 fe80::1569:8500:b24a:51aa  TCP  [TCP Dup ACK 37753#19] 8360 > microsoft-ds [ACK] Seq=80228 Ack=40489174 Win=64800 Len=0 SLE=40499254 SRE=40526614
37792 27.286370 fe80::1569:8500:b24a:51aa fe80::3820:2199:1623:37a1  TCP  [TCP Previous segment lost] [TCP segment of a reassembled PDU]
37793 27.286372 fe80::1569:8500:b24a:51aa fe80::3820:2199:1623:37a1  TCP  [TCP segment of a reassembled PDU]
37794 27.286375 fe80::1569:8500:b24a:51aa fe80::3820:2199:1623:37a1  TCP  [TCP Fast Retransmission] [TCP segment of a reassembled PDU]
37795 27.286377 fe80::1569:8500:b24a:51aa fe80::3820:2199:1623:37a1  TCP  [TCP Out-Of-Order] [TCP segment of a reassembled PDU]
37796 27.286379 fe80::1569:8500:b24a:51aa fe80::3820:2199:1623:37a1  TCP  [TCP Out-Of-Order] [TCP segment of a reassembled PDU]
37797 27.286382 fe80::1569:8500:b24a:51aa fe80::3820:2199:1623:37a1  TCP  [TCP Out-Of-Order] [TCP segment of a reassembled PDU]
37798 27.286413 fe80::3820:2199:1623:37a1 fe80::1569:8500:b24a:51aa  TCP  [TCP Dup ACK 37753#20] 8360 > microsoft-ds [ACK] Seq=80228 Ack=40489174 Win=64800 Len=0 SLE=40528054 SRE=40529494 SLE=40499254 SRE=40526614
37799 27.286432 fe80::3820:2199:1623:37a1 fe80::1569:8500:b24a:51aa  TCP  [TCP Dup ACK 37753#21] 8360 > microsoft-ds [ACK] Seq=80228 Ack=40489174 Win=64800 Len=0 SLE=40528054 SRE=40530934 SLE=40499254 SRE=40526614
Run Code Online (Sandbox Code Playgroud)

在这一点上,我完全不知道接下来要尝试什么。

原始问题

背景

我目前在新安装的 Windows 7 笔记本电脑上遇到问题。该问题最初发生在我安装了 Windows 7 RC 之后。当这台笔记本电脑上安装了 Windows Vista 和 Windows 7 Beta 1 时,我能够以千兆位速度进行传输,并将巨型帧打开到 9KB/9014 范围。笔记本电脑之间的两个开关也支持巨型帧。

将文件从我的服务器复制到我的笔记本电脑时,它们以蜗牛般的速度运行(通常小于 1 MB/秒),而通过相同交换机的其他设备可以以更高的速度(45 - 55 MB/秒)进行传输。似乎从笔记本电脑复制到服务器网络的速度更快,但没有像它应该的那样。

涉及的机器

  • Miyuki:有问题的笔记本电脑。Windows 7 x64 RTM。HP Pavilion dv9700 首席技术官。使用 NVIDIA nForce 10/100/1000 Mbps 以太网适配器。(视频为 GeForce 8400M GS)
  • Naru:有文件的服务器。自定义 Windows Server 2008 R2 x64 SP2。使用 D-Link DGE-560T PCI Express 千兆适配器。
  • CC:同一交换机上的 HTPC 没有问题。Windows Vista x86 SP2。使用板载 Realtek RTL8168B/8111B PCI-E GBE 适配器。

拍摄这些图像时,巨型帧已全部关闭。

图片

从笔记本电脑启动的复制

服务器 -> 笔记本电脑

(来源:gibixonline.com
笔记本电脑 -> 服务器

从服务器发起的复制

服务器 -> 笔记本电脑

(来源:gibixonline.com
出乎意料的是,让服务器将文件从笔记本电脑复制到自身会导致我期望的速度。(笔记本电脑 -> 服务器)

(来源:gibixonline.com

我之前说过,同一台交换机上的另一台机器没有这个问题。高 DPI 已打开,因为它显示在 HDTV 上。
服务器 -> HTPC

(来源:gibixonline.com

当然,作为测试,我决定看看我的笔记本电脑和 HTPC 之间的速度是多少。不幸的是,它们正是我所期望的。
HTPC -> 笔记本电脑

(来源:gibixonline.com

最后的笔记

我已经尝试了我能想到的一切。在这一点上,即使是巨型帧也被关闭,似乎没有任何影响。我尝试关闭我的防病毒保护以更换我使用的电缆。目前使用的所有电缆都是我制造的 CAT-5e。我尝试从 HTPC 上取下电缆并将其插入我的笔记本电脑,看看布线是否有问题。有问题的两个交换机是 D-Link DGS-1216T 和支持巨型帧的“哑”交换机 D-Link DGS-2208。

Tim*_*edy 5

尝试禁用 Window 的自动调整功能。

在 CMD 窗口中:

netsh interface tcp set global autotuning=disabled 
Run Code Online (Sandbox Code Playgroud)

重新运行您的测试,看看您是否注意到性能改进。我不得不在我家中运行 Windows 7 的几台笔记本电脑上执行此操作,这很有帮助。

如果情况变得更糟,或者您没有注意到任何改善,您可以通过以下方式重新启用自动调整:

netsh interface tcp set global autotuning=normal
Run Code Online (Sandbox Code Playgroud)


chr*_*ris 0

综上所述,我假设您已将网卡设置为全双工、100MBit,而不是自动?

  • 如果交换机无法管理,切勿这样做。如果一侧强制为全双工,另一侧为自动,则另一侧将变为半双工。然后你开始丢失数据包(很多......)。您无法管理的开关是自动开关。在服务器上保持自动并检查接口是否协商全双工。还要检查接口错误。 (10认同)
  • 我很好奇,您是否尝试过从方程式中删除开关并直接从“服务器”到“笔记本电脑”运行交叉电缆? (5认同)