networking速度故障排除 – 旧时查询

我正在寻求帮助,我敢肯定,这是一个古老的问题。 我发现自己处于一种渴望更清楚地了解networking吞吐量的状况,但似乎无法find使其“点击”的信息,

我们有几个地理分布的服务器,运行各种版本的Windows。 假设我们总是使用一台主机(桌面)作为数据源,当将数据从主机复制到全国其他服务器时,我们发现速度变化很大。 在某些情况下,我们可以一直以12MB / s的速度复制数据,而在另一些情况下,我们可以看到0.8 MB / s。 应该注意的是,在testing8个目的地之后,我们似乎总是在0.6-0.8MB / s或11-12MB / s。 在我们主要关心的build筑中,我们有一个OC-3连接到我们的ISP。

我知道有很多变数在起作用,但我想我希望这里的专家可以帮助回答一些基本的问题来帮助我加深理解。

1.)对于使用100Mbps以太网卡和72 ms典型延迟的运行Windows XP,Server 2003等的旧式机器,是否合理地提供0.8 MB / s的声音? 或者你觉得这个速度足够慢,以表明一个问题?

2.)“吞吐量= TCP窗口/延迟”的经典“math最快速度”在本例中计算为0.8 MB / s(64Kb / 72 ms)。 我的理解是,这是一个上限; 你永远不会期望达到(由于开销),更不用说超过这个速度。 但在某些情况下,我们看到的速度是12.3 MB / s。 networking中散布着Steelhead加速器,那么这些加速器可以占据如此高的传输速率吗?

3.)有人build议使用SMB与SMB2可以解释速度的差异。 事实上,正如我们所料,数据包捕获显示正在使用,取决于操作系统版本。 我明白什么决定了SMB2的使用与否,但是我很想知道SMB2能带来什么样的性能提升。

我的问题似乎只是一个缺乏经验,更重要的是,在什么是和不是合理的networking速度的angular度来看。 任何人都可以帮助传播来临的背景/观点

您所指的math公式实际上是确定TCP最有效的传输窗口大小设置的方式,而不是实际可用的带宽。 TCP使用称为滑动窗口的机制,允许根据networking条件调整传输速度。 这个想法是,TCP发送器将发送越来越多的数据,而不需要接收器的确认。 如果数据丢失,那么确认之间发送的数据量就会减less,从而也会降低有效带宽。

所讨论的公式实际上基于给定的一对主机之间的延迟和往返延迟来确定该TCP发送窗口的理想大小。 这个想法是有一个窗口的大小,使“在飞行中”的数据量相当于所谓的带宽延迟产品。 例如,如果您有每秒50兆比特(6.25兆比特),平均往返延迟为100毫秒,那么您将有6.25 * 0.1 = 625千字节的数据。 这将是TCP协商的价值(如果configuration正确)。 由于链接的延迟和带宽特征各不相同,因此窗口大小也是如此。

你需要的是一个带宽pipe理工具,如iperf(免费)在源和你的目的地上运行。 这应该给你一个实际的吞吐量的概念(独立于其他应用程序),同时也提供一些延迟的洞察。 在主机之间运行扩展ping也将提供延迟特性的一般概念。 当你有这些数据的时候,你会更清楚地知道你应该看到吞吐量。

顺便说一句 – 任何一种局域网优化器的使用往往会结合数据压缩,TCP优化,caching等。虽然方便,它可以掩盖底层链接的性质。 一旦你对原始的带宽/延迟有了一个概念(可能会有丢包),你可以仔细研究一下,以确保你的各种主机被设置为正确利用可用带宽。

尝试“ping -l 8092”或FTP或HTTP来检查是否是SMB问题。

首先:你用什么媒体连接电脑? 我们是什么“100mpbs”? 以太网? 你不能将它用于“分布式地理”计算机,对吧?

在“互联网上的VPN”的情况下,您的计算机之间的路由器可能使用不同的链接:一个是快速的,另一个不是。 他们可以根据许多参数select链接。

请描述你的networking。

这也可能是一个MTU问题:几个链接可能有不同的MTU。

很多评论和用户在这里提供了很好的build议。 他们中的一些碰到了我正在寻找的东西,但是我也有幸和我们公司的networking老手会面,这有助于澄清事情。 我以为我会在这里发表我的发现/理解为了他人的利益。 请随时纠正我,如果任何这似乎closures:

1.)具有72ms延迟和64K窗口的单个TCP会话的最大吞吐量正好在0.8MB / s左右,这对于单线程单会话拷贝来说是合理的,就像我们使用robocopy执行的那样。

2)这种速度差异似乎归结为转移方法的有效性。 在我们的例子中,我们使用Robocopy和Repliweb。 我发现robocopy使用单个TCP会话,而Repliweb可以打开多个会话来发送数据。

3.)来自微软网站的调查显示SMB2与SMB1相比,性能有显着提升。 然而,在某些情况下,在操作系统协商使用哪种协议方面存在一些问题,所以应该知道a)什么情况下可以使用SMB2,以及b。)SMB2是否实际上正在被使用在networking上捕获。

目前看来Wire-shark可以决定使用SMB2协议。

我希望这有帮助。 再一次,我的理解在这里是相当简单的,可以随意扩展。