我们最近换了新的互联网 - 100Mb/s 光纤 - 并且一直在向我们的新 ISP 抱怨传输速度太快,无法连接到美国的一些 FTP 服务器(距离 300ms)。特别是对于一个服务器,我们只能获得 1Mb/s。尽管他们向我们保证他们不会以任何方式限制传输速度。
因此,在一位技术人员上门拜访后,他说他在另一个客户那里也看到过同样的问题,并表示他尝试下载的几乎所有国际 FTP 站点都存在类似的速度问题。他说 FTP 就是这样的,延迟越高,速度越慢。我以前从未听说过这种限制。所以我读了一些资料。
我了解到“长而粗的管道”需要很大的缓冲区来确保一切顺利进行。而且缓冲区大小并没有固定不变的公式。
FTP 服务器位于运行 Filezilla 的 Windows VPS 上。- 我们这边的客户端是一个特殊的第三方应用程序,它监视服务器上的新订单,当订单完成后,下载它们并从服务器上删除文件。
我无法调整客户端的缓冲区大小(我正在询问开发人员,但我还没有找到办法) - 但我可以在 File Zilla 中调整缓冲区大小。
因此,我以不同的速度进行了一些传输,似乎找到了一个不错的最佳速度,可以达到近 7Mb/s。但这仍然只是我应该能够达到的速度的一小部分。 https://www.dropbox.com/s/0dlwwuteq2o6txq/Screenshot%202016-03-08%2016.45.03.png?dl=0
我看过很多这样的问题: Filezilla FTP 在 1 Gbits 光纤上上传速度很慢(350KBps)?和 https://stackoverflow.com/questions/30847433/very-slow-ftp-download大部分内容都是“缓冲区大小,缓冲区大小,缓冲区大小”,但我肯定应该比 7Mb/s 更好
问题是:
如果我不信任 ISP,并且认为我的线路存在整形,我该如何证明这一点?
FileZilla 有一个上限为 6 位的“内部缓冲区”,以及一个可以更高大小的“套接字缓冲区”。这两个缓冲区如何配合使用?我发现将内部缓冲区作为套接字的一半似乎是最好的,但我是否应该尝试其他配置?
缓冲区大小是否需要是 8 的平方(32768、65536、131072 等)或者我可以使用其间的其他数字?
3b. 我发现的最佳情况是 262144(插座)和 131072(内部) - 我应该从那里开始以较小的增量进行测试吗?
- 如果其他人距离 ftp.rapidstudio.co.za 300ms,您能看到获得的速度吗?(用户:测试密码:测试)
谢谢史蒂文
答案1
因此,根据我从 Michael Hampton 的“带宽延迟产品”中了解到的情况,这种“长而粗的管道”无法提供我们所需的性能。我们可以将 FTP 拉近一点,或者使用更好的文件传输方法,这样就不会“来回”了。
由于不使用 FTP 还存在其他客户端软件问题,因此我们选择将服务器拉近一点。我购买了本地 VPS - 价格翻倍,规格减半,但距离只有 2ms,而且传输速度非常快。
另一种方法是在服务器上安装 Dropbox,并将其与本地文件夹同步。这将大大加快速度。但由于其他软件和工作流程要求/限制,这不是一个合适的解决方案。
答案2
尝试使用最新的 FileZilla FTP 服务器。0.9.59。无论出于什么原因,此版本都显著提高了我的网络吞吐量(10 倍)。我认为 0.9.58 实际上是有帮助的变化:
0.9.58(2016-08-11)新功能:
TCP 发送缓冲区自动调整性能改进,以减少高负载下的 CPU 使用率禁用 FTP over TLS 的 IDEA 和 SEED 密码