我们在相距约 200 英里的位置之间有一对新的多路路由 1Gbps 以太网链路。“客户端”是一台新的相当强大的机器(HP DL380 G6,双 E56xx Xeons,48GB DDR3,R1 对 300GB 10krpm SAS 磁盘,W2K8R2-x64),“服务器”也是一台足够好的机器(HP BL460c G6 、双 E55xx Xeon、72GB、R1 对 146GB 10krpm SAS 磁盘、双端口 Emulex 4Gbps FC HBA 链接到双 Cisco MDS9509,然后连接到具有 128 x 450GB 15krpm FC 磁盘的专用 HP EVA 8400,RHEL 5.3-x64)。
从客户端使用 SFTP,我们只看到使用大 (>2GB) 文件的吞吐量约为 40Kbps。我们已经执行了服务器到“其他本地服务器”的测试,通过本地交换机(Cat 6509s)看到大约 500Mbps,我们将在客户端做同样的事情,但那是一天左右的时间。
您将使用哪些其他测试方法向链接提供者证明问题出在他们身上?
调整大象:
这可能需要调整,但可能不是 pQd 所说的问题。这种链接被称为“Long, Fat Pipe”或大象(参见RFC 1072)。因为这是一个跨越距离的胖千兆管道(在这种情况下,距离实际上是时间/延迟),所以 tcp 接收窗口需要很大(参见 TCP/IP 插图卷 1,TCP 扩展部分的图片)。
要弄清楚接收窗口需要是什么,您可以计算带宽延迟积:
如果有 10MS 延迟,此计算器估计您需要大约 1.2 MBytes 的接收窗口。我们可以用上面的公式自己计算:
因此,您可能需要运行数据包转储,以查看tcp 窗口缩放(允许更大窗口的 TCP 扩展)是否正在发生,以便在您弄清楚大问题是什么后对其进行调整。
Window Bound:
如果这是问题所在,即您受窗口大小限制而没有缩放,如果没有 Window 缩放,并且无论管道大小如何,都有大约 200 毫秒的延迟,我希望得到以下结果:
所以:
为了获得您所看到的结果,您只需要解决延迟问题,即:
所以(对于 40 kBytes/s):
(请检查我的数学,这些当然不包括所有协议/标头开销)
40kbps 非常低[直到我怀疑有故障的媒体转换器/双工不匹配[但你有千兆位,所以没有半双工的地方!]等]。必须有数据包丢失或涉及非常高的抖动。
iperf 是我想到的第一个测量可用吞吐量的工具。在一侧跑
另一方面:
然后您可以交换客户端/服务器角色,将 -d 用于双工等。在测试开始之前在两台机器之间运行 mtr 并查看您在未使用的链接上的延迟/数据包丢失,以及它们在数据传输过程中如何变化。
您希望看到:非常小的抖动并且没有数据包丢失,直到链路在其容量的 90% 左右饱和。
用于*nix和win的 iperf ,请在此处和此处阅读。
mtr 为 *nix和win。
tracepath 可以显示两个站点之间的路由问题。
iperf、ttcp 和 bwping 可以为您提供有用的信息。
你知道这个 1GB 链接是如何配置的吗?您是在此链接上桥接还是路由?您的链接 SLA 是什么?你可以被你的链接提供商塑造吗?
如果你只得到 40kbs ,那么有一个严重的问题,你确定它不是 1MB 的链接而不是 1GB/s 的链接。你可能会发现链接的速度并不是你想象的那样:-)
RFC 2544 或Y.156sam
这些是为证明运营商的 SLA 而进行的网络测试。IPERF 等不是可验证的网络测试方法。