我有一个在 15 Mb/s DS3 上运行的 Windows FTP 服务器。当我从更快的连接 (40 Mb/s) 连接到服务器并使用 1 个连接从服务器下载时,我获得 15 MB/s 连接速度 (8 Mb/s) 的大约 50%,当我同时运行 2 个连接时,我可以将连接速度最大化。当我从速度测试站点运行速度测试时,我收到的上传和下载速度大约为 15 MB/s。内部上传速度也是如此,我可以以服务器连接速度的大约 50% 进行上传。我以 58.24 Mb/s 的速度上传了一个 50 MB 的文件。
问题是当我从互联网上传时,速度会慢很多。互联网连接速度为 40 Mb/s,通常约为 0.2 Mb/s。所有连接之间都没有代理服务器。
如何提高/排除上传连接速度?
谢谢
答案1
我不太确定你对某些事情的解读,但首先,你在这里能获得的最大互联网速度是 15 mbps,因为链路的强度取决于其最薄弱的环节。
可能没有代理服务器,但两个盒子之间会有路由器,这都会产生累积延迟。根据流量从上传机器通过互联网到 FTP 服务器所走的路径,延迟可能会相当高。此外,如果其中一个中间路由器的带宽受限,延迟会进一步增加。
此处的故障排除步骤可能是尝试从一个节点到另一个节点的一些 traceroute/tracert 命令。您需要运行一些测试来排除瞬态情况,但总体而言,您应该能够相当清楚地了解连接需要多少跳数,以及是否有任何中间点速度过慢。
至于您的 40 mbps 连接,情况可能并非如此。如果是 ADSL 或类似设备,由于该技术,您的上传速度会变慢。您的 ISP(甚至中间点之一)可能正在实施某种形式的带宽调整。各种邪恶行为都可能发生。
您的 NIC 也可能存在问题。我过去发现某些制造商的某些 NIC 在持续上传情况下表现不佳,因此这可能是问题之一。
答案2
FTP 使用 TCP 进行通信。您是否考虑过可能是延迟影响了您的 FTP 速度?
TCP 的设计目标是随着延迟的增加而降低速度。因此,延迟越高,吞吐量越低。
进行 ping 测试来检查两个端点之间的延迟。
例如:在 10ms 延迟下,您只能在 40Mbps 链路中实现 10Mbps。
在 50ms 时最大吞吐量下降到 5Mbps。
有许多商业产品可以解决这个问题,FileCatalyst 就是其中之一:http://www.filecatalyst.com/starting-points/fast-file-transfer
还有一些开源解决方案,http://www.filecatalyst.com/open-source-fast-file-transfers
完全披露:此用户是 FileCatalyst 的员工。