我可以做些啥来加快 S3 上传/更新?
Posted
技术标签:
【中文标题】我可以做些啥来加快 S3 上传/更新?【英文标题】:What can I do to speed up S3 uploads/updates?我可以做些什么来加快 S3 上传/更新? 【发布时间】:2014-09-12 16:13:13 【问题描述】:我今天整天都在尝试将一些小东西上传到 s3。 500 个目录中有大约 20k 个文件,总大小约为 3GB。对于名为 Simple Storage Service 的服务来说,这是绝对合理的。我平均可以以大约 500k/s - 1mb/s(1.8 到 3.6 gb/h 之间)的速度上传到不同的地方。我整天都在尝试将这些文件上传到 s3,我的上传速度肯定很糟糕(想想 100 mb/h 左右)。
我试过了:
s3 Web 控制台,在各种操作系统上具有各种浏览器 boto 使用我编写的各种脚本,并在网上找到(主要是在 SO 上)。我希望您能帮我诊断以下问题:
拖放到 s3 控制台(只是为了计算 20k 个文件,大约需要一个小时)。为什么?除非我能解决这个问题,否则 Web 控制台对我来说几乎毫无用处。 上传本身非常慢,很少超过 100 k/s。 上传了一整天后,我注意到文件名有一个简单的问题,不想再花一整夜再次上传,我使用了这个脚本:Amazon S3 boto: How do you rename a file in a bucket?,每个人都声称它运行得非常快。它设法每 2-3 秒重命名大约 1 200kb 文件。为什么? 上传后,公开所有文件(使用 Web 控制台)花了大约 4 小时,但仍未完成。真的很沮丧,一定是我做错了什么。我希望一切都能以大约 10 倍的速度运行,但事实并非如此。我读过如果拆分文件 s3 运行得更快,并且我读过该区域(我在纽约市)非常重要。什么变化会给我最大的上传速度提升?
【问题讨论】:
你应该看看IOPS EBS volumes @alfasin 与 S3 无关。 @carlosdc,您在哪个区域创建了存储桶?此外,美国东北部的主要宽带(以及,嗯,视频)提供商之一对 AWS 流量进行了“无法解释的”限制的长期指控。然而,S3 一点也不慢。 @Michael-sqlbot 我不久前创建了存储桶,它是美国标准的。我的 ISP 是 TWC。 @Michael-sqlbot S3 不是为高吞吐量而设计的。 IOPS EBS 专为密集型 I/O 设计 - 这是 OP 的要求。 【参考方案1】:也许可以通过更改 AWS 服务器位置
来修复缓慢的上传连接我刚刚弄清楚,我的问题是什么:上传持续时间(大小 35MB)
俄勒冈州,美国 us-west-2:5-6 分钟 德国法兰克福 eu-central:1 分钟! (这大约是我的最大连接数)我在维也纳,而不是在美国 -> 检查您的 AWS 服务器位置
【讨论】:
【参考方案2】:上传本身非常慢
你可以试试Bucket Explorer,在数百个并行队列中上传操作,让上传过程更快。
上传后,公开所有文件(使用网络控制台)花了大约 4 个小时,但仍未完成。
您可以在存储桶上设置策略以公开访问对象。 以下示例策略允许匿名用户访问。
"Id": "ds",
"Statement": [
"Action": "s3:GetObject",
"Effect": "Allow",
"Principal": "AWS": "*",
"Resource": [
"arn:aws:s3:::testbucket",
"arn:aws:s3:::testbucket/*"
],
"Sid": "1"
],
"Version": "2008-10-17"
披露:我是 Bucket Explorer 的开发者之一
【讨论】:
firefox 警告我 Bucket Explorer 包含恶意软件(virustotal 也是如此)。以上是关于我可以做些啥来加快 S3 上传/更新?的主要内容,如果未能解决你的问题,请参考以下文章
我可以做些啥来加快我使用 NBomber 的负载测试? (VS LT 250 RPS 轻松;NBomber 最高 25 RPS)
IBM Mainframe Assembler 程序在添加 COBOL 调用后显示 CPU 时间和运行时间的极端跳跃。为啥?可以做些啥来加快速度?