速来报名!AICon北京站鸿蒙专场~ 了解详情
写点什么

Amazon S3 提升请求速率性能并减少随机前缀使用需求

  • 2018-10-15
  • 本文字数:1674 字

    阅读完需:约 5 分钟

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

2018-10-15 04:571696
用户头像

发布了 731 篇内容, 共 451.5 次阅读, 收获喜欢 2002 次。

关注

评论 1 条评论

发布
暂无评论
发现更多内容

工赋开发者社区 | 工业5.0为何是下一个10年的制造业关键性变革方向?

工赋开发者社区

工赋开发者社区 | 事件驱动架构要避开的 5 个陷阱

工赋开发者社区

佛萨奇2.0上链DApp开发|佛萨奇链上开发技术

薇電13242772558

dapp

SimMIM:更简单的掩码图像建模

Zilliz

《鹅鸭杀》爆火,一文带你了解如何实现顶流社交游戏

声网

游戏开发 RTC 应用架构

软件测试/测试开发 | Appium 用例录制

测试人

软件测试 自动化测试 测试开发 测试用例 appium

极光笔记 | 十分钟搞懂手机号码一键登录

极光JIGUANG

前端 接口 sdk 一键登录

汽车虚拟仿真,实时云渲染至关重要!

3DCAT实时渲染

云渲染 虚拟仿真 实时渲染 汽车仿真

Gartner:流程挖掘市场发展空间巨大,2022年预计市场规模将超10亿美元

九科Ninetech

【网络安全】记一次红队渗透实战项目

网络安全学海

网络安全 信息安全 计算机 渗透测试 漏洞挖掘

NLP知识图谱项目合集(信息抽取、文本分类、图神经网络、性能优化等)

汀丶人工智能

人工智能 自然语言处理 深度学习 知识图谱

Tokio 中 hang 死所有 worker 的方法

Databend

大数据培训课程后如何找到工作

小谷哥

云图说 | 华为云主机安全服务(新版)来啦!

华为云开发者联盟

云计算 后端 华为云 云图说 企业号 1 月 PK 榜

镭速-跨国车企数据高速、安全跨境传输解决方案

镭速

性能提升 40 倍!我们用 Rust 重写了自己的项目

Peefy

rust 编程语言 #go Python.

可以手动磨皮的p图软件portraiture2023

茶色酒

Portraiture2023

不看后悔,一文带你入门Go云原生微服务

王中阳Go

golang 高效工作 学习方法 微服务 云原生

java课程学习难度怎么样

小谷哥

云上的米开朗基罗:在不确定时代,寻找建筑般的确定性

华为云开发者联盟

云计算 后端 华为云 企业号 1 月 PK 榜

元宇宙成本高吗?构建元宇宙需要多少钱?

3DCAT实时渲染

元宇宙 元宇宙开发 元宇宙成本

直播预告 | 2月2日,腾讯Light与你一同用AI,让美好变更好

腾源会

公益

云原生数据交付平台Kuda在AI场景下的模型分发实践

Geek_c4ea78

机器学习 开源 Kubernetes 容器 云原生

如何通过C#/VB.NET在 Excel 中对形状进行分组或取消分组

在下毛毛雨

C# .net Excel

API 网关策略二三事

API7.ai 技术团队

APISIX 网关设计

【必看知识】PCB设计中焊盘的设计标准

华秋PCB

工具 PCB PCB设计

在spring boot3中使用native image

程序那些事

spring 程序那些事 spring boot3

接口测试这件小事

石臻臻的杂货铺

接口测试

计算机网络到底应该怎么学?

Java永远的神

程序员 面试 计算机网络 计算机 tcpip

软件测试/测试开发 | Appium环境安装与架构介绍

测试人

软件测试 自动化测试 测试开发 appium

Mac免费实用的读写软件Tuxera NTFS2023

茶色酒

Tuxera NTFS2023\ Tuxera NTFS2023

Amazon S3提升请求速率性能并减少随机前缀使用需求_语言 & 开发_Steffen Opel_InfoQ精选文章