S3 上传速度上限源自何处?

S3 上传速度上限源自何处?

我做一个上传到 S3 时遇到速度受限的问题,我不知道该如何解决。

设置:Windows Server 2008 R2 x64,外部 HD,使用基于 Java 的上传工具 Jsh3ll 和自定义 VBS 脚本来启动作业。

每次运行一个进程时,我的网速总是被限制在 4mbps 左右。我的 FiOS 网速为 35/35mbps,所以这不是一个绝对的限制。而且,我可以运行并行实例,最高可以达到 35mbps,所以我知道问题与网关/网卡/机器/亚马逊无关。运行并行实例在一定程度上可以解决问题,但会大大增加我的工作流程的复杂性。解决这个问题会让我的生活变得轻松很多。

当我第一次这样做时,我尝试了一堆 Windows TCP 参数,并且能够短暂地获得不受约束的带宽,但这是不可重复的。

有什么想法吗?

答案1

我强烈怀疑你看到的是带宽延迟积(BDP)工件。“长而粗的管道”(高带宽、高延迟)限制了 TCP 在任何给定时间可以“传输”的数据量。您观察到并行传输运行速度更快,这是 BDP 发挥作用的一个重要指标。

您到 S3 的往返延迟是多少?

您可以尝试启用复合 TCP 拥塞提供程序(CTCP)通过netsh interface tcp set global congestionprovider=ctcp命令。该拥塞提供商应该“积极”地设置发送窗口,以便在高带宽、高延迟网络上“传输”更多数据。

摘自微软研究论文:

对于具有较大 TCP 接收窗口大小和较大带宽延迟乘积(带宽乘以连接延迟)的 TCP 连接,下一代 TCP/IP 堆栈中的复合 TCP (CTCP) 会大幅增加一次发送的数据量... 在 Microsoft 内部进行的测试中,对于 1 Gigabit/s 连接,往返时间为 50 毫秒,大文件备份时间减少了近一半。具有较大带宽延迟乘积的连接可以实现更好的性能。

相关内容