为什么上传到 S3 这么慢?

Tom*_*nal 13 amazon-s3 linode amazon-web-services

我正在使用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
Run Code Online (Sandbox Code Playgroud)

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

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


更新:

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


Traceroute: 这是到要上传到的服务器的跟踪路由(根据tcpdump)。

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

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

小智 11

以防万一有人偶然发现这个......

我有一个问题,从 ec2 实例上传到 s3 存储桶真的很慢,结果很简单,存储桶的区域!我在北加利福尼亚州使用 ec2 实例,当存储桶按照我们的标准创建时,传输速度非常慢,将存储桶设置为北加利福尼亚州的速度更快。


gek*_*kkz 10

仅仅因为您可以达到 50mbps 并不意味着您将始终获得 50mbps;到 S3 的网络路径以及延迟也很重要。

如果您能够使用分段上传,您将能够将文件分解为多个部分并使用多个线程上传,这可能会提高上传速度。

  • 尝试 s3multiput。 (4认同)