Amazon Web Services(AWS)最近宣布了S3 请求速率得到显著性能,并能够并行化请求以扩展到所需的吞吐量。值得注意的是,这种性能提升还“移除了随机化对象前缀的任何先导”,并可以在S3 对象命名中使用“逻辑或顺序命名模式,而不会对性能产生任何影响”。
Amazon Simple Storage Service(Amazon S3)是一种对象存储服务,用于“随时随地存储和检索任意数量的数据”。业界将其作为各种大型场景的存储后端,客户在向服务传输对象或从服务获取对象时往往需要非常高的吞吐量。根据S3请求速率和性能指南,应用程序现在可以实现“每秒至少3,500 次PUT/POST/DELETE 和5,500 次GET 请求”,高于之前的“每秒300 PUT/LIST/DELETE 或800 多次GET 请求“。
一个重要的方面是S3 现在还自动根据“桶的前缀”提供这种吞吐量的提升,并且“前缀的数量没有限制”,这意味着应用程序可以使用并行所需的前缀来实现所需的吞吐量,并“通过计算集群的因子”有效地扩展S3 性能。除此之外,这种大规模的高性能S3 不再需要随机对象命名。
这一显著变化的技术细节目前还没有文档化,但之前版本的性能指南说明了常用场景面临的一些底层的挑战,如在上传大量对象时,“客户有时候会使用序号或日期和时间作为键名称的一部分”(根据 Internet Archive 的 2017-17-29 数据):
examplebucket/2013-26-05-15-00-00/cust1234234/photo1.jpg examplebucket/2013-26-05-15-00-00/cust3857422/photo2.jpg examplebucket/2013-26-05-15-00-00/cust1248473/photo2.jpg examplebucket/2013-26-05-15-00-00/cust8474937/photo2.jpg examplebucket/2013-26-05-15-00-00/cust1248473/photo3.jpg ... examplebucket/2013-26-05-15-00-01/cust1248473/photo4.jpg examplebucket/2013-26-05-15-00-01/cust1248473/photo5.jpg examplebucket/2013-26-05-15-00-01/cust1248473/photo6.jpg examplebucket/2013-26-05-15-00-01/cust1248473/photo7.jpg ...
使用带有顺序前缀的大量对象会引入性能问题,因为它增加了“Amazon S3 将大量键定位到特定分区的可能性,从而压垮分区的 I/O 容量”。这个问题只能通过人工命名约定来缓解,例如添加哈希键前缀或反向嵌入 ID,用以随机化键名和分区访问。
这些技术限制对于应用程序设计来说是不太友好的,并且 AWS 也承认这种“随机性确实会引入一些有趣的挑战”,例如,“当你想列出键名称中具有特定日期的键”。后来,S3 分区机制进行了重新设计,架构师和开发人员现在可以设计和实现 S3 支持的应用程序,并严格使用面向用例的命名方案。
云经济学家兼“ Last week in AWS ”作者 Corey Quinn 在他的文章“S3 is faster" doesn’t do it justice 中称赞了这一改进:
[…] 将实现细节呈现给客户是历史遗留问题。你应该在不需要了解服务如何运作的情况下获得可接受的性能。我很高兴这个历史遗留问题现在被丢进了历史垃圾箱 […]
对于 GET 密集型的工作负载,AWS 建议继续使用它的内容交付网络(CDN) Amazon CloudFront ,以进一步优化延迟和传输速率,同时降低成本。
根据存储性能和可扩展性核对清单提供的指南,微软Azure 的Blob Storage 使用“基于范围的分区方案来伸缩系统和进行负载均衡”。根据“ optimizing your Cloud Storage performance ”的说明,Google Cloud Platform 的 Cloud Storage“通过文件的名称 / 路径对上传连接进行自动均衡,分配到多个后端分片 […]”。因此,两种服务都建议使用基于显式哈希前缀而不是顺序命名方案来优化大规模场景下的性能。
在相关的新闻中,Amazon S3 最近宣布了基于对象标签的选择性跨区域复制,以及 S3 Select 的特性增强,这两者都可以进一步提高特定用例的性能。
Amazon S3 文档提供了一个开发者指南,包括性能优化和 API 参考。除了支持常规 S3 API 之外,AWS CLI 还提供更高级别的S3 命令,以便更有效地复制、移动和同步大量对象。 Amazon Simple Storage Service(S3)论坛为此提供支持。在 Amazon S3 常规定价之外,所有客户都可以自动获得所有的改进,而无需支付额外费用。
查看英文原文: Amazon S3 Increases Request Rate Performance and Drops Randomized Prefix Requirement
评论 1 条评论