我有一个带有千兆以太网的盒子,但在下载测试中我无法超过 200Mbps 或 250Mbps。
我做这样的测试:
% wget -6 -O /dev/null --progress=dot:mega http://proof.ovh.ca/files/1Gb.dat
--2013-07-25 12:32:08-- http://proof.ovh.ca/files/1Gb.dat
Resolving proof.ovh.ca (proof.ovh.ca)... 2607:5300:60:273a::1
Connecting to proof.ovh.ca (proof.ovh.ca)|2607:5300:60:273a::1|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 125000000 (119M) [application/x-ns-proxy-autoconfig]
Saving to: ‘/dev/null’
0K ........ ........ ........ ........ ........ ........ 2% 5.63M 21s
3072K ........ ........ ........ ........ ........ ........ 5% 13.4M 14s
6144K ........ ........ ........ ........ ........ ........ 7% 15.8M 12s
9216K ........ ........ ........ ........ ........ ........ 10% 19.7M 10s
12288K ........ ........ ........ ........ ........ ........ 12% 18.1M 9s
15360K ........ ........ ........ ........ ........ ........ 15% 19.4M 8s
18432K ........ ........ ........ ........ ........ ........ 17% 20.1M 7s
由于我仅控制一台服务器我想测试的网站,而不是我想要执行测试的网站,我该如何进行公平的测试?
基本上,有一些可以让我通过 HTTP 在多个同时的 TCP 流中下载 100MB 文件的工具?
或者一次性下载多个文件?
答案1
Aria2是类似于 wget 的命令行工具,支持通过 http、bittorent、ftp 等方式同时进行多个下载。
aria2c -d /dev -o null --allow-overwrite=true -x 15 url --file-allocation=none
使用 15 个连接将文件下载到 /dev/null。
--允许覆盖防止 aria 尝试重命名 /dev/null。
我不希望在下载之前开始分配空间,因为下载需要时间
答案2
您的速度将受限于最慢链接的速度。您可能拥有 10Gig 连接,但如果您的互联网连接是拨号连接,您将需要等待。即使在可以支持 1GB 端到端的 LAN 上,您也可能会发现源服务器的读取速度或目标服务器的写入速度存在瓶颈。
答案3
造成这种情况的因素有很多:
首先,您是通过互联网下载的。我们假设您确实拥有千兆位下行连接:
TCP 开销可能会占用您带宽的 5-10% - 为简单起见,我们假设为 10%。因此,您的带宽会下降到 900Mbits/s。
远程服务器负载是一个主要因素,您无法控制或看到它。许多服务器可以轻松实现 200 MB/s 的读取时间,但在负载下,它会降低速度。
路线也是影响速度的一个因素。如果你的路线已经饱和,速度就会受到影响。
最后...你真的拥有千兆互联网连接,还是只是端口速度问题?速度受限于您通过的最慢链路。此外,如果您拥有带有千兆链路的托管服务器,这些链路通常由其他客户端共享,并且您一开始就没有专用的千兆链路。
编辑:我不推荐某个工具的原因是它们可以通过谷歌搜索找到,而且有很多。