首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >并发实例下载时S3下载速度太慢?

并发实例下载时S3下载速度太慢?
EN

Stack Overflow用户
提问于 2017-10-24 18:56:42
回答 3查看 10.4K关注 0票数 3

我有一个处理大数据集并从S3桶下载数据的系统。

每个实例在S3上从对象(dir)内部下载多个对象。当实例数较少时,下载速度是好的,即4-8MiB/s。但是,当我像100-300实例一样使用时,下载速度会降低到80KiB/s

想知道这背后的原因是什么,我能用什么方法来补救呢?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-10-24 19:41:26

您的S3桶中的对象是如何命名的?由于分区,对象的命名可能会对桶的吞吐量产生令人惊讶的巨大影响。在后台,S3根据对象的键对桶进行分区,但只有键的前3-4个字符才是真正重要的。还请注意,键是桶中的整个路径,但是子路径对于分区并不重要。因此,如果您有一个名为mybucket的桶,并且在2017/july/22.log2017/july/23.log2017/june/1.log2017/oct/23.log等对象中有对象,那么按月进行分区的事实实际上并不重要,因为只使用了整个键的前几个字符。

如果对桶中的对象有顺序的命名结构,那么对于对象的许多并行请求,您的性能可能会很差。为了解决这个问题,您应该为桶中的每个对象分配一个3到4个字符的随机前缀。

有关详细信息,请参阅http://docs.aws.amazon.com/AmazonS3/latest/dev/request-rate-perf-considerations.html

票数 4
EN

Stack Overflow用户

发布于 2017-10-24 19:51:03

如果您的EC2实例位于专用子网中,那么NAT可能是一个限制因素。

尝试以下几点:

  • 将S3端点添加到VPC中。当您的EC2实例与S3通信时,这将绕过NAT。
  • 如果您正在使用NAT实例,请尝试使用NAT网关。他们可以扩大/缩小带宽。
  • 如果使用NAT实例,请尝试将NAT实例的实例类型增加到具有更多CPU和增强网络的实例类型。
  • 如果您使用的是单个NAT,请尝试使用多个NAT(每个子网一个)。这将把带宽扩展到多个NAT。
  • 如果所有这些都失败了,尝试将您的EC2实例放入公共子网。
票数 8
EN

Stack Overflow用户

发布于 2017-10-24 20:59:32

您可能希望使用S3DistCP而不是手工管理并发和连接.

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46918061

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档