确定文件传输如此缓慢的原因

我试图通过局域网传输大文件(每个3个以上)。 我的连接是100兆的框,与千兆骨干。 但是,当在服务器和服务器之间传输文件到本地计算机时,传输速度大约在每秒11到13兆位。

然而,来自互联网的大量下载速度显着加快。

我提出了这个问题与我的networking基础设施人员,但他们坚持一切正常的networkingconfiguration。

有没有我可以安装在我的电脑或服务器上的任何工具来尝试隔离放缓的来源?

首先检查每个服务器上的接口计数器,应该有0或接近0的错误报告。

其次,检查两台服务器的双工。 如果你混合100mbit和GbE,那么你可能有一个双工不匹配。 确保双方都设置为自动/自动,或在所有接口上手动设置速度和双工。

第三,千兆主干网有什么样的争议,你能否确认你的迁移有足够的空间?

最后,你的发送服务器是否能够足够快地发送。 正如下面的评论所build议的那样,是受限于发送者驱动器的IO带宽,还是受CPU(如果使用scp或类似的)?

顺便说一下,每秒11到13兆字节是100mbit的理论最大值,你确定你用来衡量的工具是报告正确的单位吗?

查看我使用的以下过程,这可能有助于缩小问题的位置。


当我testingnetworking吞吐量时,最好删除尽可能多的variables,如磁盘I / O或CPU限制。 以下是我使用的程序,可以说明您在networking中看到的典型最大值。

工具:

这两个实用程序应该可以在大多数现代* nix系统上使用,既可以预先安装,也可以通过源代码进行编译。

  • Netcat的
  • PV

程序:

  1. 在一台计算机上运行以下命令来设置UDP侦听器。 (使用UDP将会提供更高的性能数字,因为没有TCP传输的开销。

    nc -ulp 5000 > /dev/null

  2. 在另一台机器上,运行以下命令,replace侦听器的IP地址,通过networking向零侦听器发送一个零stream。 PV工具将显示接收机跟踪的当前性能。

    pv < /dev/zero | nc -u listener-ip-address 5000

笔记:

  • 千兆以太网连接的理论最大值为119MB / s(注意,M B ,而不是M b
  • TCP也可以通过在nc命令中删除-u来testing
  • 在真实世界的应用程序中,您将永远达不到PV输出中所示的性能数字。

这种方法在devise良好的networking中提供可预见的结果,并具有正常运行的设备 因此,它是一个很好的工具,可以帮助您发现networking本身或networking设备是否导致了“慢”的感觉。

你在Windows Vista吗? 请注意,任何时候打开多媒体应用程序(包括带有Flash的networking浏览器),Vista都会进行局域网传输。

我遇到了这个问题,转发速度是10MB / s,应该是30-40MB / s。

您可以在此处详细说明registry项中禁用限制:

http://www.anandtech.com/systems/showdoc.aspx?i=3233&p=2

还要考虑两种情况下协议的差异。 “从Internet上下载大量文件”听起来像HTTP / FTP over TCP / IP。 在局域网上,你使用的是不同的东西吗? 也许一组不匹配的SMB实现,或苹果文件共享? 我只提到它,因为我已经看到Windows和UNIX / Linux系统之间的中小企业通信行为在一些真正braindead的方式。

尝试尝试不同的传输机制,看看是否会产生不同的结果。

当你在服务器之间传输文件时,服务器是直接通话吗?

或者,你是否在Windows中,你有驱动器映射到每个服务器,你正在拖动文件?

在第二种情况下,所有事情都将通过您的计算机进行,因此您获得的最快传输速度将在11MBps左右。

如果您在* nix系统上,请使用ttcp来确定您的TCP连接是否是瓶颈。

如果您使用的是Windows,我强烈build议使用免费的实用程序RichCopy 。 它是multithreading的,可以暂停和恢复文件复制操作。 我有很好运气使用它来在服务器之间传输文件。

这是一个非常古老的工具,但是我在过去曾经与Netperf取得了很好的成功。 它应该给你一个两个设备之间的带宽的开始的想法。

愚蠢的build议,但是有可能转移不是通过局域网发生的,而是实际上通过互联网进行的? 你怎么连接机器之间? 我问,因为你的症状听起来类似于最近一集DotNetRocks的讨论。 请参阅解决scheme的成绩单开始阅读:

卡尔·富兰克林:是的。 脑筋急转弯,我们希望人们把他们的想法或答案发送到发生的事情。