为什么上传到S3这么慢?

我正在使用s3cmd上传到S3:

 # s3cmd put 1gb.bin s3://my-bucket/1gb.bin 1gb.bin -> s3://my-bucket/1gb.bin [1 of 1] 366706688 of 1073741824 34% in 371s 963.22 kB/s 

我从Linode上传,根据支持(大约6 MB / s),具有50 Mb / s的传出带宽上限。

为什么我的S3上传速度如此之慢,我该如何改进呢?


更新:

通过SCP上传相同的文件到m1.medium EC2实例(从我的Linode到实例的EBS驱动器的SCP)根据iftop (由密码完成的任何压缩不是一个因素)提供约44 Mb / s。


Traceroute:这是一个traceroute到服务器上传到(根据tcpdump )。

  #traceroute s3-1-w.amazonaws.com。
 traceroute到s3-1-w.amazonaws.com。  (72.21.194.32),最多30跳,60字节的数据包
  1 207.99.1.13(207.99.1.13)0.635 ms 0.743 ms 0.723 ms
  2 207.99.53.41(207.99.53.41)0.683 ms 0.865 ms 0.915 ms
  3 vlan801.tbr1.mmu.nac.net(209.123.10.9)0.397 ms 0.541 ms 0.527 ms
  4 0.e1-1.tbr1.tl9.nac.net(209.123.10.102)1.400ms 1.481ms 1.508ms
  5 0.gi-0-0-0.pr1.tl9.nac.net(209.123.11.62)1.602 ms 1.677 ms 1.699 ms
  6 equinix02-iad2.amazon.com(206.223.115.35)9.393 ms 8.925 ms 8.900 ms
  7 72.21.220.41(72.21.220.41)32.610 ms 9.812 ms 9.789 ms
  8 72.21.222.141(72.21.222.141)9.519 ms 9.439 ms 9.443 ms
  9 72.21.218.3(72.21.218.3)10.245 ms 10.202 ms 10.154 ms
 10 * * *
 11 * * *
 12 * * *
 13 * * *
 14 * * *
 15 * * *
 16 * * *
 17 * * *
 18 * * *
 19 * * *
 20 * * *
 21 * * *
 22 * * *
 23 * * *
 24 * * *
 25 * * *
 26 * * *
 27 * * *
 28 * * *
 29 * * *
 30 * * * 

延迟看起来是合理的,至less在服务器停止响应ping请求之前。

仅仅因为你可以达到50mbps并不意味着你将永远得到50mbps; S3的networkingpath以及延迟也很重要。

如果您能够使用多部分上传,您将能够将文件分解成多个部分,并使用多个线程上传,可能会增加上传速度。

以防万一谁绊倒在这….

我有一个问题,从ec2实例上传到s3存储区真的很慢,事实certificate这非常简单,就是存储区域! 我在北加利福尼亚州使用ec2实例,当桶创build为我们的标准时,转移非常缓慢,桶设置在北加利福尼亚州,它快得多。

我在论坛上看到很多关于使用各种客户端缓慢上传到S3的线程,比如免费的命令行工具(用Python编写,btw)和商业版本。

尽pipe我没有任何确凿证据,但切换S3客户端(例如Cloud Berry Explorer)可能会解决您的问题。 尝试一下! 🙂