问题:
我的本地工作站和远程专用服务器之间的传输速率非常慢.我的服务器在100 Mbps端口上,我的本地工作站通过光纤进行50 Mbps对称连接.
症状:
当在speedtest.net上针对美国和墨西哥的不同服务器和位置进行测试时,服务器和工作站都能获得出色的结果(非常接近其连接速度).如果我将DropBox中的大文件下载到我的服务器或工作站,我在单个连接上分别获得10 MBps和5 MBps的传输速率,根据每个100 Mbps和50 Mbps的连接速度是正确的repectively.
然而,如果我将文件从我的服务器(通过HTTP或FTP)传输到我的工作站,我甚至不能接近我应该获得的50 Mbps速度(5 MBps传输速率),但我得到相当于3 Mbps的东西(300 KBps传输速率).
我试图理解为什么我的传输速率变慢.我不确定如何调试它.每当我向主机提供商提出问题的票时,他们都会问我是否有tracert输出,最后只是把它归咎于中间的某个服务器.但这似乎并不正确,如果我们考虑一下我刚开始说的话:我已经看到了这个确切的速度/问题,同时让我的服务器使用GoDaddy,iWeb和GloboTech,同时我自己也有不同的ISP不同类型的互联网服务.它看起来像服务器区域的某个固定设置.
测试我做了:
SPEEDTEST
这些是来自speedtest.net的速度测试,它在我的专用服务器中针对不同的远程服务器执行,包括我在墨西哥城的ISP数据中心的服务器:
加拿大:下载94.64 Mbps,上传94.87
http://www.speedtest.net/my-result/3470801975
加利福尼亚州圣何塞:下载93.58 Mbps,上传95.48 Mbps
http://www.speedtest.net/my-result/3470805341
墨西哥城(我自己ISP的datacanter中的服务器):92.99 Mbps下载和95.39 Mbps上传
http://www.speedtest.net/my-result/3470810269
如果我从本地工作站对相同的服务器运行这些测试,我的速度也接近我的50 Mbps连接.
TRACERT
这是从我的工作站到我的专用服务器执行的最近tracert输出:
1 <1 ms <1 ms <1 ms 192.168.7.254 2 2 ms 1 ms 1 ms 10.69.32.1 3 * 3 ms 2 ms 10.5.50.174 4 3 ms 2 ms 2 ms 10.5.50.173 5 * 5 ms 3 ms fixed-203-69-2.iusacell.net [189.203.69.2] 6 32 ms 32 ms 32 ms 8-1-33.ear1.Dallas1.Level3.net [4.71.220.89] 7 33 ms 33 ms 33 ms ae-3-80.edge5.Dallas3.Level3.net [4.69.145.145] 8 33 ms 33 ms 33 ms ae13.dal33.ip4.tinet.net [77.67.71.221] 9 76 ms 76 ms 157 ms xe-1-0-0.mtl10.ip4.tinet.net [89.149.185.41] 10 72 ms 72 ms 72 ms te2-2.cr2.mtl3.gtcomm.net [67.215.0.160] 11 72 ms 72 ms 72 ms ae2.csr2.mtl3.gtcomm.net [67.215.0.134] 12 72 ms 72 ms 73 ms te3-4.dist1.mtl8.gtcomm.net [67.215.0.83] 13 72 ms 72 ms 72 ms ns1.marveldns.com [173.209.57.82]
的iperf
这是使用我的专用服务器作为服务器和我的工作站作为客户端执行的iperf测试:
------------------------------------------------------------ Client connecting to ns1.marveldns.com,TCP port 5001 TCP window size: 64.0 KByte (default) ------------------------------------------------------------ [ 3] local 192.168.7.2 port 60339 connected with 173.209.57.82 port 5001 [ ID] Interval Transfer Bandwidth [ 3] 0.0-10.3 sec 5.62 MBytes 4.59 Mbits/sec
的pathping
这是从我的工作站到我的专用服务器执行的路径推荐的输出:
Tracing route to ns1.marveldns.com [173.209.57.82] over a maximum of 30 hops: 0 ws1 [192.168.7.2] 1 192.168.7.254 2 10.69.32.1 3 * 10.5.50.174 4 10.5.50.173 5 fixed-203-69-2.iusacell.net [189.203.69.2] 6 8-1-33.ear1.Dallas1.Level3.net [4.71.220.89] 7 ae-3-80.edge5.Dallas3.Level3.net [4.69.145.145] 8 ae13.dal33.ip4.tinet.net [77.67.71.221] 9 xe-1-0-0.mtl10.ip4.tinet.net [89.149.185.41] 10 te2-2.cr2.mtl3.gtcomm.net [67.215.0.160] 11 ae2.csr2.mtl3.gtcomm.net [67.215.0.134] 12 te3-4.dist1.mtl8.gtcomm.net [67.215.0.83] 13 ns1.marveldns.com [173.209.57.82] Computing statistics for 325 seconds... Source to Here This Node/Link Hop RTT Lost/Sent = Pct Lost/Sent = Pct Address 0 ws1 [192.168.7.2] 0/ 100 = 0% | 1 0ms 0/ 100 = 0% 0/ 100 = 0% 192.168.7.254 0/ 100 = 0% | 2 1ms 0/ 100 = 0% 0/ 100 = 0% 10.69.32.1 0/ 100 = 0% | 3 3ms 0/ 100 = 0% 0/ 100 = 0% 10.5.50.174 0/ 100 = 0% | 4 2ms 0/ 100 = 0% 0/ 100 = 0% 10.5.50.173 0/ 100 = 0% | 5 4ms 20/ 100 = 20% 20/ 100 = 20% fixed-203-69-2.iusacell.net [189.203.69.2] 0/ 100 = 0% | 6 34ms 0/ 100 = 0% 0/ 100 = 0% 8-1-33.ear1.Dallas1.Level3.net [4.71.220.89] 0/ 100 = 0% | 7 34ms 0/ 100 = 0% 0/ 100 = 0% ae-3-80.edge5.Dallas3.Level3.net [4.69.145.145] 0/ 100 = 0% | 8 33ms 0/ 100 = 0% 0/ 100 = 0% ae13.dal33.ip4.tinet.net [77.67.71.221] 0/ 100 = 0% | 9 79ms 0/ 100 = 0% 0/ 100 = 0% xe-1-0-0.mtl10.ip4.tinet.net [89.149.185.41] 2/ 100 = 2% | 10 73ms 14/ 100 = 14% 12/ 100 = 12% te2-2.cr2.mtl3.gtcomm.net [67.215.0.160] 0/ 100 = 0% | 11 72ms 2/ 100 = 2% 0/ 100 = 0% ae2.csr2.mtl3.gtcomm.net [67.215.0.134] 2/ 100 = 2% | 12 72ms 18/ 100 = 18% 14/ 100 = 14% te3-4.dist1.mtl8.gtcomm.net [67.215.0.83] 0/ 100 = 0% | 13 72ms 4/ 100 = 4% 0/ 100 = 0% ns1.marveldns.com [173.209.57.82] Trace complete.
你可以为自己尝试的事情
如果你想尝试一下,这些是我在服务器中为测试目的设置的一些东西:
HTTP服务器上的大文件
我在我的服务器中放置了一个5 GB的文件,可以通过HTTP下载.你可以在这里找到它:http://www.marveldns.com/transfer_test/
Speedtest MINI应用程序
我在我的服务器上设置了“最快的迷你”测试.您可以访问它,看看它在我的服务器和您自己中下载和上传的速度.你可以在这里找到它:http://www.marveldns.com/speedtest/
最后:
正如我之前所说,我正在努力帮助理解整个事情.我不是TCP / IP或高端网络方面的专家.老实说,甚至不清楚如何使用tracert,iperf或pingpath的结果来解决问题,但我包括它们因为我在谈论这个问题时总是被要求它.
如果我的问题缺乏更好的东西,请不要只是投票,让我知道它有什么问题,或者我可以添加什么来获得一些帮助.谢谢.
当我尝试从您的服务器下载时,我得到555KB / s.我的往返时间为108毫秒.做数学我得到以下窗口大小:555KB / s * 108ms = 59.94KB.
只要我从数据中心的主机执行此操作,就可以获得非常一致的吞吐量和往返.另外,如果我并行开始两次下载,则每次下载555KB / s.这正是瓶颈是窗口大小时会出现的症状.
没有窗口缩放,窗口不能大于64KB.但我确实看到窗口缩放是协商的,因此应该可以实现更高的吞吐量.这留下了两个假设进行调查:
>在从客户端到服务器的路径上,某些东西会破坏窗口缩放选项,使服务器认为窗口缩放了1倍.
>服务器可能配置为永远不会在每个连接上使用超过60KB的发送窗口.
第一个是很容易验证您是否可以在服务器上执行数据包捕获.只需查看传入SYN数据包的缩放选项,即可确定服务器是否收到了大于1的缩放因子.我建议使用Wireshark来分析流量.
验证第二个假设需要了解您正在使用的操作系统.你碰巧选择了一个我不知道的操作系统,所以我无法帮助你.所以我只能提供网络方面的专业知识.