为什么Speedtest和Wget之间存在差异?


18

我的客户抱怨互联网速度慢。用Speedtest.net测量时,速度是可以接受的。定期测量的下载量是额定速度的10%到30%。我无法解释。

一些背景。有问题的连接是在那些阳光明媚的加勒比海岛屿中,快速互联网并不是最大的资产之一。最近,互联网速度变得不错,达到了200 Mbps。但是,ping(往返)阿姆斯特丹往返大约需要180毫秒。

客户拥有100 Mbps光纤连接。在Windows机器(speedtest.net)上对ISP CO进行速度测试时,我们获得95 Mbps。使用与阿姆斯特丹相同的速度测试时,我们达到60-70 Mbs。完全可以接受。

不久前,我安装了RasPi,它会定期从阿姆斯特丹的一台服务器中获取文件。在直接连接到AMS-IX的数据中心中。使用此命令:

wget -O /dev/null --report-speed=bits http://aserv.example.net/~myuser/links/M77232917.txt

.txt文件是23MB的数字。(实际上,它是唯一但最大的Mersenne Prime,23e6位)

当我在有问题的网络上下载该文件时,wget报告如下:

dev/null 100%[====================================================================>]  22.81M  11.6Mb/s   in 17s    

2019-02-08 14:27:55 (11.2 Mb/s) - ‘/dev/null’ saved [23923322/23923322]

那是同时speedtest.net报告60-70 Mbps。

我知道Raspi有其局限性。但是这个速度变化很大。RasPi一次报告此11 Mbps,下一次报告22 Mbps。但有时低至1.5 Mbps。

在此处输入图片说明

当我使用功能非常强大的笔记本电脑进行此测试时,最高速度会更高(最高30 Mbps),但也会显示出同样的低点。因此,它表示高端的RasPi限制,但不是高端的10 Mbps。

我从德国慕尼黑一个数据中心的服务器发出了完全相同的命令。速度96 Mbps。

然后从荷兰的消费者100 Mbps光纤连接:65 Mbps。

然后,在我家中标称10 Mbps ADSL的地方。Speedtest显示10Mbps。Wget提供8.5 Mbps。在我的书中这是平等的。

这排除了对充当文件下载主机的服务器的任何限制。

我不希望任何人都能指出客户所在地连接速度慢的原因。但是,谁能解释一下speedtest.net和wget之间的差异?

速度测试是否有忽略或仅测量峰值的东西?还是wget受到长时间ping的严重影响?

我觉得wget测试给出了真实有效的速度,而speedtest主要是显示广告速度。


检查速度的另一种方法是 ssh personal-server cat /dev/zero | pv > /dev/null在您不限制其速度低于您期望的速度的个人服务器上。
JoL

我略过了你的问题。听起来您的带宽很大,并且往返行程延迟可能很长,也被称为“长胖网络”。我亲身经历了这种事情,并通过打开许多连接来解决了这一问题(我使用了rsync)。您可以尝试打开许多wget实例(尝试5、10、20)吗?维基百科页面是:带宽延迟产品。
Trevor Boyd Smith,

Wget默认以字节为单位报告:[james @ lamia root] $ wget -O / dev / null 10.32.48.1/t1 / dev / null 100%[================= ====>] 0.9秒钟内100.00M 112MB / s [james @ lamia root] $ wget --report-speed = bits -O / dev / null 10.32.48.1/t1 / dev / null 100%[=== ==================>] 0.9秒钟内100.00M 932Mb / s
詹姆斯

考虑在DC托管计算机上为tcp 运行iperf服务器,为udp 运行iperf服务器。然后,作为cron作业的一部分,请从客户端调用测试,以查看速度与http get的比较。
克里吉

到底是什么样的文件?它可压缩并且服务器支持http压缩吗?虽然无法解决带宽问题,但您可以缩小文件的大小。
Salman A

Answers:


16

除了发布的其他原因外,当带宽延迟乘积变大时,TCP连接也无法很好地处理大文件。

就像在以其他方式快速连接到岛屿上一样。

请参阅Wikipedia关于TCP调整的条目

因此,Speedtest可以通过该连接以95 mb / sec的速度转储一个小文件,但是wget对于20 MB的文件只能获得10 mb / sec的速度。


2
这对我来说是新知识。很好。确实,带宽延迟乘积很高(如果我计算正确,则为2.25 MB)。快速浏览显示默认缓冲区为87kB,最大缓冲区为3.5 MB。(我假设字节不是位)。我必须更深入地研究这一点,以便更好地进行评估。如果结合speedtest下载大量小文件并记录最大速度,则说明很多。
汉斯·林克尔

21

ISP通常会将流量优先分配给speedtest.net,以便它们可以吹嘘其连接的速度,而实际上,它们并没有提供那么多的带宽。他们完全意识到,大多数用户只会检查该网站进行确认。

您还必须记住,传输速度取决于客户端服务器。在当今世界上,大多数服务器都以一种或另一种方式节流。

最后,期望海外连接具有稳定的带宽毫无意义。根本没有这样的东西。它必须经过无数个交换机,光纤,数据中心才能到达最终位置。而这一切花费只是一个运动部件放缓。


我理解您的声明,除了在服务器端进行限制。它是我自己的服务器,当客户端位于另一个数据中心(相距约1200公里)时,速度始终为95 Mbps。即使客户端处于100 Mb的消费者连接上,它也为65 Mbps。
汉斯·林克尔

9
你能证明你的要求吗?“ ISP通常将流​​量优先分配给speedtest.net”
Soleil

1
@Soleil并没有采取太多谷歌搜索:myce.com/news/…–
MonkeyZeus

6
ISP优先考虑速度测试流量就像一家大型汽车制造商伪造排放测试一样。
Barmar

3
有趣的是,我曾经能够通过从Raspberry Pi反复将流量发送到speedtest.net来“修复”断断续续的超级碗流。似乎只要他们能以最快的速度通行,他们就会优先考虑我的整个连接-昼夜差异。并没有太多证据表明ISP会做可疑的事情,但这是事实。
撤消

7

wget给出良好的速度测量指标。Speedtest的测试可能包括某种并行性,可以解释更多的数字。

为了获得良好的平均速度测试,我认为下载时间至少应为90-120秒(以获得良好的平均值)


我正在安装功能更强大的日志记录计算机,并增加文件大小。
汉斯·林克尔

您可以开发“某种并行性”吗?由于存在先验1连接,因此我看不到任何方式/原因。
Soleil

1
@Soleil,恕我直言,他们下载的文件很少,而不仅仅是一个。您可以通过运行几次wget并对其速度进行测试来进行测试
Romeo Ninov

1
我可以并行进行测量,但是有什么好处呢?我已经证明其他客户可以全速前进。区别在于有问题的连接具有180毫秒的延迟。快速连接<10毫秒。并行会减少延迟影响吗?只是问问。
汉斯·林克尔

1
我检查了@RomeoNinov,没有这样的并行性(speedtest.net)。每次上传一个文件,每个下载一个文件(每个[1-2] MB)。
Soleil

3

一个原因可能是通常仅通过一个TCP连接就无法达到最大速度。

Speedtest.net最近引入了单一连接模式。试试这个,看看是否有所作为。

然后,例如使用带有参数的aria2进行下载,以使用多个连接并进行比较。例如aria2c -d /dev -o null --allow-overwrite=true --file-allocation=none --max-connection-per-server=8 --min-split-size=1M http://aserv.example.net/~myuser/links/M77232917.txt


2

使用Fast.com互联网速度测试,这是基于Netflix的速度测试,这意味着ISP无法将其与Netflix本身区分开。

通常,这是比其他任何测试都更准确的测试。人们不会担心网页加载的速度,而会担心由于显示视频所需的带宽增加而使视频缓冲的速度。

ISP通常根据速度测试或使用端口8080所连接的域来提高速度。而Netflix使用端口80(优先级较低时使用该端口)。


1
“这意味着ISP不能将它与Netflix本身区分开”-这是不正确的,ISP可以在HTTPS连接上同时看到DNS请求和SNI。
凯文,

@Kevin fast.com与netflix服务器联系以进行下载,这意味着它将模拟netflix本身的视频。虽然我会答应您的,但ISP可能会抓住一个事实,即连接到随后与基于Netflix的服务器联系的特定站点需要优先级,类似于speedtest.net
Jonathan

这不完全是火箭科学。他们所要做的就是在看到fast.com连接后的几分钟或几小时内取消Netflix的控制。当然,好处是,您可以访问fast.com来使自己不受限制,然后关闭选项卡并真正观看Netflix。
凯文,

我个人认为这是计算机科学,或者至少与计算机科学有关,而不是火箭科学。在过去的几年中,似乎一些较大的ISP(例如Bell)还没有赶上fast.com。无论哪种方式,只要节流效果很差,就可以在连接到fast.com的计算机上运行脚本以提高下载速度,这是可行的。
乔纳森

0

是我还是没有人注意到他说的Mbps和wget命令列表为“ MB / s”。

60mbp / s并实际获得11.2Mb是正常的。

Mbps和MB / s是两种不同的速度。

“一个兆位是一个兆字节的1/8,这意味着要在1秒钟内下载1 MB的文件,您将需要8 Mbps的连接。”因此11mbx8 = 88mbps ... 11.2Mb实际上对于连接报告很有用60-70mbps。

有记忆的人会失去遮篷吗?70Mbps的速度测试速度永远不会达到70mb / s


的输出wgetMb / s,转换为兆位/ sMB / s 将转换为MegaBytes / s。只需运行您自己的wget命令并验证结果即可。
托马斯,

1
@james:默认情况下是,但是在OP中,wget命令包含的--report-speed=bits结果Mb/sMbit/s。在没有--report-speed=bits给出的情况下运行将MB/s转化为MByte/s。注意bB
汤玛斯
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.