为什么我在千兆以太网上上传速度为 950 Mbps,但下载速度只有 360 Mbps?

为什么我在千兆以太网上上传速度为 950 Mbps,但下载速度只有 360 Mbps?

我让两台台式电脑直接互相通信。它们都配有千兆以太网网络适配器。也就是 1 Gbps 或 1000 Mbps。我让它们与一条全新的 10 米长的 Cat6 UTP 连接起来直的电缆,我非常接近理论最大值。Windows 任务管理器(网络选项卡)显示一个方向的速度为 844 - 946 Mbps。但在另一个方向,它只显示大约 326 - 365 Mbps。

Local: 192.168.100.152
Remote: 192.168.100.151

本地计算机运行 Windows 8.1 Pro,我将其远程连接到运行 Windows Vista Ultimate 的另一台计算机。

Iperf 结果

我使用 Iperf 进行了一些测试。每次测试持续 60 秒。每个通信方向我都进行了 10 次测试。然后我将测试结果汇总到此表格中,以得出平均值。

192.168.100.152 -> 192.168.100.151          106 MB/s
192.168.100.152 -> 192.168.100.151          107 MB/s
192.168.100.152 -> 192.168.100.151          108 MB/s
192.168.100.152 -> 192.168.100.151          107 MB/s
192.168.100.152 -> 192.168.100.151          107 MB/s
192.168.100.152 -> 192.168.100.151          104 MB/s
192.168.100.152 -> 192.168.100.151          101 MB/s
192.168.100.152 -> 192.168.100.151          108 MB/s
192.168.100.152 -> 192.168.100.151          108 MB/s
192.168.100.152 -> 192.168.100.151          108 MB/s
----------------------------------------------------
Min: 101 MB/s    Max: 108 MB/s    Avg: 106.4 MB/s (851.2 Mbps)

192.168.100.152 <- 192.168.100.151          41.1 MB/s
192.168.100.152 <- 192.168.100.151          41.1 MB/s
192.168.100.152 <- 192.168.100.151          41.1 MB/s
192.168.100.152 <- 192.168.100.151          41.0 MB/s
192.168.100.152 <- 192.168.100.151          41.0 MB/s
192.168.100.152 <- 192.168.100.151          41.1 MB/s
192.168.100.152 <- 192.168.100.151          41.0 MB/s
192.168.100.152 <- 192.168.100.151          41.1 MB/s
192.168.100.152 <- 192.168.100.151          41.1 MB/s
192.168.100.152 <- 192.168.100.151          41.1 MB/s
-----------------------------------------------------
Min: 41.0 MB/s    Max: 41.1 MB/s    Avg: 41.07 MB/s (328.56 Mbps)

我的问题是,为什么另一个方向的速度要慢得多?

Windows 任务管理器

这是在 Iperf 中执行测试时看到的网络图。

A b

请注意以下两张截图中的图表!

C d

您是否注意到,当我从发送数据切换到接收数据时,右上角的速度从“1 Gbps”变为“500 Mbps”。为什么会这样?它是否以某种方式感知到另一个网络端口一半单向传输速度可达 1 Gbps,但满的什么时候反过来呢?

文件传输测试

我用数据文件做了更多测试,以获得更真实的磁盘到磁盘读数。为此,我创建了一个 1 GB 的文件。我只使用了默认的 Windows 文件共享功能。从本地计算机,我连接到远程计算机上的 C$ 共享,并在它们之间来回拖放文件(跳绳),每次都更改文件名。我尽我所能计时,这就是我得到的结果。

192.168.100.152 -> 192.168.0.151    1073741824 Byte    25 s    40,96 MB/s
192.168.100.152 -> 192.168.0.151    1073741824 Byte    20 s    51.2 MB/s
192.168.100.152 -> 192.168.0.151    1073741824 Byte    16 s    64 MB/s
192.168.100.152 -> 192.168.0.151    1073741824 Byte    16 s    64 MB/s
192.168.100.152 <- 192.168.0.151    1073741824 Byte    11 s    93.091 MB/s
192.168.100.152 <- 192.168.0.151    1073741824 Byte    34 s    30.118 MB/s
192.168.100.152 <- 192.168.0.151    1073741824 Byte    11 s    93.091 MB/s
192.168.100.152 <- 192.168.0.151    1073741824 Byte    11 s    93.091 MB/s

Windows 文件复制图显示的吞吐量则讲述了不同的故事。在这里,我正在将两个文件一个接一个地下载到同一磁盘上的两个不同位置。第一个副本显示 107 MB/s,持续高达 41%,第二个副本显示 98.9 MB/s,持续高达 87%。

埃 F

所以这与我使用 Iperf 工具得到的结果一致。现在,这是我上传到远程计算机时的情况。

G H 我

在高达 73% 的速率下,它能维持 103 MB/s,然后在 82% 的速率下骤降到糟糕的 27.3 MB/s,之后在 93% 的速率下又上升到 49.1 MB/s。

这里还有两个看起来更有趣的“过山车”图。

杰 钾

更新 1 - 链接速度

我尝试禁用远程计算机上的 Wifi 适配器。(本地计算机上的 Wifi 适配器已被禁用。)我认为这就是 Timtech 在该评论中的意思。我也有同样的想法 - 同时启用有线和无线适配器会将有线适配器的吞吐量限制为 Wifi 适配器的级别(适应最慢的适配器以实现兼容性)。因为 Vista 计算机通常会将 Wifi 适配器(在本例中为 DWA-160 Wireless N)检测为“52 Mbps” - “104 Mbps”链接。

在下面的屏幕截图中,远程计算机设置为服务器,本地计算机设置为客户端(192.168.100.152 <- 192.168.100.151)。

升

但是断开远程计算机上的 Wifi 适配器并不能解决我的有线连接的低吞吐量问题。

不仅如此!在远程计算机上的 Windows 任务管理器中,有线适配器 (LAN 1) 的链接速度显示为“1 Gbps”。如果您参考上面的屏幕截图,您会发现它在本地计算机上被检测为“500 Gbps”链接。因此,对于相同的有线连接,Windows Vista 说它是 1 Gbps 链接,而与此同时,Windows 8.1 Pro 说它是 500 Gbps 链接……那么哪一个是正确的?

当我将远程计算机设置为客户端并将本地计算机设置为服务器 (192.168.100.152 -> 192.168.100.151) 时,它在远程计算机上的样子如下。

米

如您所见,1 Gbps 链路的利用率约为 95%。这相当于 950 Mbps。这正是我在上面测试中得到的结果。但反过来看,情况就完全不同了。

更新 2 - 双工和 MDI-X

根据你们中的一些人的建议,我查看了双工设置。本地和远程计算机都设置为自动协商模式,如下面的屏幕截图所示。

n o

我尝试在两台电脑上都改为“1.0 Gbps 全双工”。然后我使用 Iperf 进行了与之前相同类型的测试。使用本地电脑作为服务器、远程电脑作为客户端,我得到的最大速度约为 950 Mbps。使用本地电脑作为客户端、远程电脑作为服务器,我得到的最大速度约为 360 Mbps。

来,看一下这些截图。

页 问

您在此处看到的是我在两台计算机之间上传和下载时的图表。较高的图表(利用率为 95 - 98%)表示本地到远程(上游 192.168.100.152 -> 192.168.100.151)。较低的图表(利用率为 ~ 33%)表示远程到本地(下游 192.168.100.152 <- 192.168.100.151)。

为了尝试排除任何自动 MDI-X 问题,我将其中一个交叉适配器连接到电缆的一端(本地计算机)。

r

这肯定会使电缆成为交叉电缆。见鬼,我甚至用网络测试仪测试了它!现在它确实是交叉的(针脚 1/3、2/6)!

现在,我在两台计算机之间建立了真正的交叉电缆连接,并且手动设置了“1.0 Gbps 全双工”。但我仍然遇到同样的问题。还有其他想法吗?除了升级 Vista 计算机(或重新安装 8.1 计算机)?

更新 3——软件或硬件限制?

我最好的猜测是,我有两个彼此不兼容的操作系统。它们都是 Windows 系统,但并非所有 Windows 系统都是一样的。我必须尝试在两个系统上使用 Vista,或者在两个系统上使用 8.1 Pro,看看我能得到什么样的吞吐量。这意味着要购买升级版。该死的微软。

顺便说一下,这两台电脑都是定制的。以下是一些规格。

Local
-----
Gigabyte GA-EP45-UD3R
Intel Core 2 Quad Q9650
Intel P45
Corsair XMS2 DHX TwinX DDR2 PC6400/800MHz 4 GB
Realtek 8111C chips (10/100/1000 Mbit)
WD Caviar Black WD1002FAEX
Windows 8.1 Pro 64-bit

Remote
------
Gigabyte GA-X38-DQ6
Intel Core 2 Duo E4500
Intel X38
Corsair XMS2 DHX TwinX DDR2 PC6400/800MHz 4 GB
Dual Realtek 8111B chip (10/100/1000 Mbit)
WD Caviar Black WD1002FAEX
Windows Vista Ultimate 64-bit

Tonny 认为 Vista 机器可能使用了有问题的 Realtek 芯片。所以我找到了这些规格。我现在发现 Vista 机器使用的是 8111 的 B 修订版,而本地机器使用的是同一芯片的 C 修订版。这有什么意义吗?制造商明确指定它们的速度为 1000 Mbit(见上文)。难道 8111B 的性能差那么多(360 Mbps)?

这些特定驱动器的突发速率达到 107 MB/s。这正是我在本地计算机上的测试中看到的数字。但即使持续的顺序或随机读/写速度可能为 55 MB/s,也不能转换为 360 Mbps。这应该给我大约 440 Mbps,而不是我得到的 360 Mbps。所以我不怀疑这是瓶颈,特别是因为它们都使用相同的驱动器型号。此外,文件复制操作是一回事,但 Iperf 根本不使用磁盘,它只使用 RAM 内存进行测试。

更新 4 - TCP 校验和卸载

按照 Tonny 的建议,我尝试关闭 TCP 校验和卸载(针对 IPv4 和 IPv6)。

s 吨

我还将两台计算机的“速度和双工”切换回自动。但这没有帮助。我仍然在一个方向上吞吐量较低,而在另一个方向上吞吐量较高。

更新 5 - 新驱动程序版本

我尝试将本地和远程的驱动程序版本更新为从 Gigabyte 网站和 Realtek 网站下载的最新版本。

Update path...

On local (RTL8111C):
8.1.510.2013 (2013-05-10, Microsoft)
8.20.815.2013 (2013-08-15, Realtek)

On remote (RTL8111B):
6.241.623.2010 (2010-06-23, Realtek)
6.250.908.2011 (2011-09-08, Realtek)
6.252.1109.2012 (2012-11-09, Realtek)

你 五 瓦 X

我在一个方向上的吞吐量仍然同样糟糕。

更新 6 - CPU 利用率

我检查了 CPU 利用率。这应该不是问题。以下是我的发现。

On local...

Download: 4 - 10 %
Upload:   4 - 10 %
Idle:     0 -  4 %

On remote...

Download: 24 - 38 %
Upload:   10 - 25 %
Idle:      1 -  6 %

本地(下载、上传、空闲)...

是 是 氨基酸

远程(下载、上传、空闲)...

AB 交流电 广告

远程服务器占用的 CPU 功率要大得多,但这也是 Core 2 Duo 速度较慢的服务器。但在我的测试中,它从未超过 38%。这里特别有趣的是,它在下载(本地 -> 远程)时占用的 CPU 功率比上传(本地 <- 远程)时占用的 CPU 功率要大得多。

因此,在吞吐量为 950 Mbps 时,它使用了 38%,而在吞吐量为 360 Mbps 时,它使用了 25%。此外,核心利用率并不均衡,它使用的一个核心比另一个核心多。我不确定从中得出什么结论。本地计算机不显示核心利用率,所以我无法比较。但本地计算机上的 CPU 利用率是均匀的(下载/上传时为 10%)。

更新 7 - 新的英特尔千兆网络适配器

我现在已经安装了英特尔的全新 PCI-Express 千兆网络适配器,以替换远程计算机上的内置 Realtek RTL8111B,据说后者的上传速度太慢。英特尔适配器的产品编号为 EXPI9301CT。根据我读过的评论,这款适配器应该非常好。我只是想排除这可能是瓶颈的可能性。

艾伊

我已经使用 Windows 版 Iperf 做了一些测试,结果如下。

本地(下载、上传)...

自动对焦 银

远程(下载、上传)...

啊 人工智能

平均而言,这款适配器实际上比 Realtek 适配器慢一点。我认为它的开销比 Realtek 更小,因此连续吞吐量更稳定。但即使使用这款英特尔适配器,我在一个方向上的速度仍然只有 360 Mbps,在另一个方向上的速度只有 950 Mbps。

local: 192.168.100.152 (win 8, realtek 8111c)
remote: 192.168.100.154 (vista, intel desktop ct)

192.168.100.152 -> 192.168.100.154    113 MB/s
192.168.100.152 -> 192.168.100.154    104 MB/s
192.168.100.152 -> 192.168.100.154    103 MB/s
192.168.100.152 -> 192.168.100.154    104 MB/s
192.168.100.152 -> 192.168.100.154    102 MB/s
192.168.100.152 -> 192.168.100.154    104 MB/s
192.168.100.152 -> 192.168.100.154    101 MB/s
192.168.100.152 -> 192.168.100.154    102 MB/s
192.168.100.152 -> 192.168.100.154    101 MB/s
192.168.100.152 -> 192.168.100.154    104 MB/s
----------------------------------------------
Max: 113 MB/s    Min: 101 MB/s    Avg: 103.8 MB/s

192.168.100.152 <- 192.168.100.154    42.2 MB/s
192.168.100.152 <- 192.168.100.154    41.2 MB/s
192.168.100.152 <- 192.168.100.154    41.1 MB/s
192.168.100.152 <- 192.168.100.154    43.0 MB/s
192.168.100.152 <- 192.168.100.154    42.3 MB/s
192.168.100.152 <- 192.168.100.154    42.3 MB/s
192.168.100.152 <- 192.168.100.154    40.2 MB/s
192.168.100.152 <- 192.168.100.154    40.9 MB/s
192.168.100.152 <- 192.168.100.154    41.3 MB/s
192.168.100.152 <- 192.168.100.154    42.0 MB/s
-----------------------------------------------
Max: 43.0 MB/s    Min: 40.2 MB/s    Avg: 41.65 MB/s

我不知道为什么它在第一次测试中(从本地到远程)就达到了 113 MB/s 的峰值。在整个测试过程中,它都保持着这个速度,图表几乎稳定在 113 MB/s。和以前一样,我每次运行都使用 60 秒的间隔。然而在下一次运行中,它下降到了 104 MB/s。

从这些值可以看出,这款英特尔适配器的吞吐量与内置 Realtek 适配器的吞吐量相同。所以我认为可以肯定地说,这与适配器本身无关。所以我们不能再指责 RTL8111B 芯片比另一块主板上的 RTL8111C 更差/更差。这看起来越来越像软件/操作系统/配置问题,或者三者同时存在。

更新 8 - Ubuntu LINUX 效果极佳

在尝试了所有其他选项后,我最终决定使用 Linux 进行一些测试,结果非常好。我在本地和远程机器上都使用了 Ubuntu Linux 13.10 Live 系统和 Iperf for Linux(版本 2.0.5-3)。结果如下。

=======================================================
REALTEK 8111C <-> REALTEK 8111B | IPERF ON UBUNTU LINUX
=======================================================

local: 192.168.100.152
remote: 192.168.100.151

192.168.100.152 -> 192.168.100.151    112 MB/s
192.168.100.152 -> 192.168.100.151    112 MB/s
192.168.100.152 -> 192.168.100.151    112 MB/s
192.168.100.152 -> 192.168.100.151    112 MB/s
192.168.100.152 -> 192.168.100.151    112 MB/s
192.168.100.152 -> 192.168.100.151    112 MB/s
192.168.100.152 -> 192.168.100.151    112 MB/s
192.168.100.152 -> 192.168.100.151    112 MB/s
192.168.100.152 -> 192.168.100.151    112 MB/s
192.168.100.152 -> 192.168.100.151    112 MB/s
----------------------------------------------
Max: 112 MB/s    Min: 112 MB/s    Avg: 112 MB/s

192.168.100.152 <- 192.168.100.151    110 MB/s
192.168.100.152 <- 192.168.100.151    111 MB/s
192.168.100.152 <- 192.168.100.151    111 MB/s
192.168.100.152 <- 192.168.100.151    111 MB/s
192.168.100.152 <- 192.168.100.151    111 MB/s
192.168.100.152 <- 192.168.100.151    110 MB/s
192.168.100.152 <- 192.168.100.151    111 MB/s
192.168.100.152 <- 192.168.100.151    111 MB/s
192.168.100.152 <- 192.168.100.151    111 MB/s
192.168.100.152 <- 192.168.100.151    111 MB/s
----------------------------------------------
Max: 111 MB/s    Min: 110 MB/s    Avg: 110.8 MB/s

本地(下载、上传、空闲)...

艾杰 AK 艾尔 是 一个

如您所见,使用 Ubuntu 时,我在两个方向上都获得了相同的吞吐量。是因为我在两台机器上使用相同的操作系统,还是有其他原因?如果我在两台机器上安装了相同的 Windows 版本,我会获得相同的吞吐量吗?我不明白为什么我在一台机器上使用略微过时的 Windows 版本(即 Vista),而在另一台机器上使用最新版本会有什么影响?... 我的意思是 Vista 仍然是当前受支持的操作系统,并且由 Microsoft 提供支持。Windows XP 则不同。

但我知道他们正在尽一切努力消灭 Vista。例如,最新的 Office 2013 故意不支持 Windows Vista。我敢肯定,微软希望 Vista 永远不会出现。就像他们希望 Windows 8.0 永远不会出现一样。但我通常和他们一样坚持不懈,不到万不得已,我不会升级我的 Windows 安装。

因此,问题是如何在两个不同的 Windows 版本下实现相同的双向吞吐量。Windows Vista 应该能够达到千兆速度 - 它不是一个有 20 年历史的操作系统,也不是我们谈论的 Windows 95。Vista 是一个现代操作系统。我还没有测试过在两台机器上运行相同的 Windows 版本。两个操作系统版本之间可能存在 TCP 实现或其他方面的差异。如果是这样,那么我可能会被迫升级 Vista 机器。要么升级,要么改用 Linux。我不准备花更多的钱买更少的东西。为什么我必须升级 Windows 才能在两个方向上获得千兆吞吐量?...

更新 9...

电缆

我尝试反转电缆。我得到的结果与以前相同。我还买了一条新的 Cat 6 跳线并尝试了它。吞吐量测试结果相同。所以电缆不是这里的问题。我只使用了预端接/模制跳线。所以接线应该是正确的。但我计划稍后终止自己的安装电缆。

FW 和 AV

至于防火墙 (FW) 和防病毒 (AV),我没有使用任何第三方 FW 或 AV 软件。我只有 Windows 防火墙和 Security Essentials。我在两台机器上都禁用了它们。吞吐量测试结果与以前相同。

敖 美联社

水溶液 应收账 作为

LAN 速度测试

我在本地机器上安装了 LAN Speed Test Lite 1.3。我相信测试是在本地内存和远程机器上的磁盘驱动器之间进行的。我不确定。但它要求在远程机器上提供共享路径。我在远程使用了 o$ share。

在 澳大利亚 AV

Upload: 427 Mbps
Download: 420 Mbps

我不太相信这些结果。如果你看一下图表,你就会发现它在整个测试过程中变化很大。该测试是一个“连续”测试,即:先进行写入(上传)测试,然后进行读取(下载)测试。显然,如果你同时进行上传/下载测试,整体吞吐量会更低。但我对这样的测试不感兴趣。到目前为止,我只在 Windows(文件共享/smb)和 Iperf 中进行过“连续”测试,包括文件传输测试。

我没有使用 LAN Speed Test 进行任何内存到内存的测试,因为它需要在远程使用一个名为 LST Server 的程序,并且该程序需要注册才能使用。

更新 10...

磁盘驱动器测试

我使用 Crystal Disk Mark 3.0.3 测试了磁盘驱动器。结果如下。

Local disk: 118 MB/s read, 113 MB/s write
Remote disk: 70 MB/s read, 69 MB/s write

这些是基于 5 次运行和 1000 MB 负载的连续读写速度。

这是本地磁盘(磁盘标记,读取,写入)......

啊 斧头 哎呀

这是远程磁盘...

亚利桑那州

但我不明白这一点……这些结果似乎是矛盾的。

好的,本地磁盘的读取速度为 118 MB/s,因此报告的上传速度约为 100 MB/s。但如果远程磁盘的写入速度仅为 69 MB/s,则无法接收。但神奇的是,我的平均上传速度仍略高于 100 MB/s。

反过来更合理。如果远程磁盘的读取速度为 70 MB/s,而本地磁盘的写入速度为 113 MB/s,则下载速度不应超过 70 MB/s。我的平均下载速度约为 40 MB/s。这似乎是合理的。

所以我无法从这些结果得出任何结论。我的意思是本地计算机上的磁盘驱动器几乎没有使用。它也是保存操作系统的磁盘,并且是该系统上唯一的分区。而远程磁盘几乎已满,并且它也被划分为多个分区。但是,它不用于操作系统。我O:在这里选择了驱动器号进行测试,因为这是可用空间最多的分区。

(请注意,我在之前的测试中使用的驱动器号C:位于完全独立的 Seagate 磁盘驱动器上,该驱动器驱动器上装有远程机器上的操作系统。因此这些读数是无法比较的。)

写缓存

启用磁盘写入缓存后,我得到了这些结果。

Local to remote: 106 MB/s
Remote to local: 42.2 MB/s

然后我禁用了远程驱动器和本地驱动器上的所有驱动器上的写入缓存。

巴 bb

我没有重新启动,因为不需要重新启动才能使更改生效。然后我得到了以下结果。

Local to remote: 106 MB/s
Remote to local: 42.1 MB/s

几乎没有任何变化。无需重启,也无需请求重启。

QOS数据包

然后我继续禁用远程计算机上相应适配器的 QOS 数据包调度程序,然后再禁用本地计算机上的相应适配器的 QOS 数据包调度程序。

公元前 屋宇署

Local to remote: 107 MB/s
Remote to local: 41.9 MB/s

这里没有重大变化。同样,没有重新启动,也没有请求重新启动。

巨型包裹

然后我继续启用巨型数据包,我使用了 4 GB 设置,因为 4 KB 是两台机器都支持的最大 MTU 大小。

是 高炉

Local to remote: 105 MB/s
Remote to local: 33.3 MB/s

现在,上传(本地到远程)没有受到影响,但下载吞吐量显著降低。没有要求重新启动,但我还是决定重新启动两台机器,以防万一。然后我再次执行了相同的测试并得到了这些结果。

Local to remote: 117 MB/s
Remote to local: 33.2 MB/s

因此,上传速度现在更快了,但下载速度仍然比我进行这些更改之前慢,即使在重新启动后也是如此。我原本希望它们都会稍微加快一点。这是什么意思?

答案1

根据您的回复:

@ewhac 本地计算机上的 TCP 窗口大小通常与远程计算机上的窗口大小不同。默认值在本地(win 8)上为 0.06 MB,在远程(vista)上为 0.01 MB。它们必须是相同的值吗?我如何要求它猜测 MSS?那是 -m 开关(“打印最大段大小”)吗?我通常不设置任何这些。为什么我必须这样做?– Sammy 11 月 30 日 21:39

TCP 窗口大小表示 TCP 堆栈在停止并等待接收远程计算机的确认之前将向线路盲目喷射的最大数据量 - 换句话说,线路上未确认的流量的最大量。Vista 计算机上的 TCP 窗口比 Windows Se7en 计算机上的 TCP 窗口小得多,这一事实支持了以下理论:在停止并等待 ACK 之前,您没有充分填充管道。

因此,我首先要尝试使用参数增加 Vista 机器上的 TCP 窗口大小-w。0.01MB 是一个没用的单位;我猜是 16KiB。因此从 16KiB 开始并运行测试:

iperf -c -w 16K ...

将窗口大小加倍并重复测试:

iperf -c -w 32K ...

希望您能观察到速度的提高。继续将窗口大小加倍,直到您不再看到明显的速度提升。

答案2

如前所述,您需要修改 iperf 中的 TCP 窗口大小,以便在低延迟高速链路上获得更高的吞吐量。不同版本的 Windows(或 iPerf)可能具有不同的默认窗口大小。尝试使用“-w 256k”开始两个都客户端和服务器。

您能确认图表的箭头方向吗?在 iPerf 中,数据被推送客户端到服务器(与我通常的想法相反)。

由于 iPerf 不接触硬盘,因此您可以排除硬盘是原因所在。

我认为您已经验证了您正在运行最新的 NIC 驱动程序。应该不需要手动设置速度/双工。巨型帧也是如此 - 它们不值得在现代硬件上费力设置。

验证两个 NIC 上是否都启用了大型发送卸载 (LSO) 和大型接收卸载 (LRO)。某些 NIC 驱动程序使用不同的名称(或控制此行为的多个选项),因此您可能需要四处寻找。通常默认是将它们全部启用。

答案3

我认为您需要多了解一些有关 iperf 工作原理的知识。如果您没有设置正确的 tcp 窗口大小,您的结果将有很大差异。我相信这是 -w 开关。此网站将协助计算最佳 TCP 窗口大小。您需要知道 RTT 和带宽才能计算它。http://www.kehlet.cx/docs/tcpwin.php

还可以尝试其他工具,例如“LAN Speed test”lite,它只会在两端的共享之间进行上传和下载传输。在我进行的测试中,它的结果非常接近。另外,请确保检查硬盘的最大读写速度。

答案4

Ubuntu LINUX 效果显著

这听起来很熟悉……你iperf在 Windows 上会莫名其妙地遇到糟糕的性能,但同样的硬件在 Linux 上运行良好。

经过一次又一次的斗争,我得出的结论是iperf在 Windows 中不稳定。我不知道为什么...老实说,我已经不再关心了,因为我知道我总是能从 Linux 获得合理的结果。

因此,如果您想知道为何性能如此糟糕,只需查看应用程序即可。

相关内容