写点什么

使用 Amazon EBS 优化实例突发功能提高应用程序性能并降低成本

  • 2019-10-07
  • 本文字数:2216 字

    阅读完需:约 7 分钟

使用 Amazon EBS 优化实例突发功能提高应用程序性能并降低成本

2017 年,Amazon EC2 引入 C5 计算密集型实例和 M5 通用型实例。2018 年,我们通过向 EC2 C5 和 M5 实例系列添加高速、超低延迟的本地 NVMe 存储,推出了 EC2 C5d 实例和 M5d 实例。EC2 C5/C5d 和 M5/M5d 实例均以 Nitro 系统为基础构建。AWS 构建的这一软件和硬件集合可实现高性能、高可用性、高安全性以及裸机功能,以降低虚拟化开销。


在 Nitro 系统的设计过程中,我们对真实世界的工作负载进行了分析,意识到需要利用更小的实例大小来通过 Amazon EBS 卷提升性能。我们发现,多数应用程序的存储需求是突发性的,具有短而密集的 I/O 周期,而突发的需求之间存在大量空闲时间。为改善这些工作负载的体验,我们研发了适用于小型实例大小的突发功能。可在 EC2 C5/C5d 和 M5/M5d 实例上使用,该功能使 large、xlarge 和 2xlarge 大小的实例每天能够实现与 4xlarge 实例相同的性能至少 30 分钟。


对具有突增 Amazon EBS 需求的应用程序,您可以根据 CPU 和内存需求调整实例大小,同时仍可满足 EBS 经过优化的实例的性能要求。这种更高的性能还让您能够根据 EBS 经过优化的实例性能对工作流的各个部分进行加速。更快的工作流可以加快作业完成速度并提高资源利用率。这种突发功能最终可以通过调整实例大小并提高总体资源利用率来降低成本。


随着这种性能的提升,您将可以处理意外的需求高峰,且不会对应用程序的性能造成影响。现在,您可以依据历史平均趋势来调整实例大小。这种突发功能可让您在不影响客户体验的前提下,提供更佳性能以承受峰值。

利用 Amazon CloudWatch 指标监控突发使用情况

为了更好地了解性能,基于 Nitro 系统的实例提供 Amazon CloudWatch 指标,以帮助您分析使用情况。您可以依据使用情况确定满足需求的更小实例。


在这些实例中,您可以通过实例级 CloudWatch 操作指标(EBSReadOps 和 EBSWriteOps)和传输的字节(EBSReadBytes 和 EBSWriteBytes)来监控使用情况。有关这些指标的更多信息,请参见列出实例的可用 CloudWatch 指标。默认情况下,这些指标支持基本监控(五分钟一次),但您可以启用详细监控(一分钟一次),不过需要额外支付费用。有关更多信息,请参见 Amazon CloudWatch 定价。


对于 large、xlage 和 2xlarge 实例,我们还提供突发均衡指标。 EBSIOBalance% 用于监控实例的 I/O 突发存储桶,EBSByteBalance% 则用于监控实例的字节突发存储桶。这些指标提供相应突发存储桶中留存的 I/O 或字节积分百分比相关的信息。这些指标以百分比的形式表示,其中 100% 表示该实例已累计达到最大积分数。您可以设置均衡过低时触发的警报。


我们启动一个 m5.large 实例来演示这些指标。然后,为改实例附加一个带有 32000 个预配置 IOPS 的 500GB io1 Amazon EBS 卷。基于 Nitro 系统的实例中附加的 Amazon EBS 卷展示为 NVMe 设备。




首先,我们使用 fio 在 /dev/disk/by-id/nvme-Amazon_Elastic_Block_Store_vol02f2f9a66c2ebfd66 中运行大型数据块 (128KiB) 测试,并监控 EBSIOBalance% 和 EBSByteBalance%。


$ sudo fio –filename= /dev/disk/by-id/nvme-Amazon_Elastic_Block_Store_vol02f2f9a66c2ebfd66 –rw=randread –bs=128k –runtime=2400 –time_based=1 –iodepth=32 –ioengine=libaio –direct=1 –name=large-block-test
复制代码


由于这是一项大型数据块工作负载,因此不会产生足够的 IOPS,耗尽 EBSIOBalance%,而是会耗尽 EBSByteBalance%,如下图所示。



然后我们再运行一个小型数据块测试,了解它对 EBSIOBalance% 和 EBSByteBalance% 造成的影响。


$ sudo fio –filename= /dev/disk/by-id/nvme-Amazon_Elastic_Block_Store_vol02f2f9a66c2ebfd66 –rw=randread –bs=16k –runtime=2400 –time_based=1 –iodepth=32 –ioengine=libaio –direct=1 –name=small-block-test
复制代码


由于这是一个小型数据块测试,会比字节/秒产生更高的 IOPS。因此,EBSIOBalance% 比 EBSByteBalance% 下降更快,如下图所示。



只要 EBSIOBalance% 和 EBSByteBalance% 高于 0%,该实例就可以产生突发性能。当实例的 I/O 活动低于基准率时,突发存储桶会重新填充。测试完成后,我们暂停实例中的所有 I/O。这段非活动时间可让实例的突发存储桶重新填充,如下图中的 EBSIOBalance% 和 EBSByteBalance% 所示。



突发存储桶的重新填充速率为基准速率和实例 I/O 活动之间的差值。例如,m5.large 的基准吞吐率为 60MB/s,基准 IOPS 速率为 3600 IOPS。假设实例的 I/O 活动为 10MB/s 和 1000 IOPS。字节存储桶会以 50MB/s(60MB/s 减 10MB/s)的速率填充。IOPS 存储桶会以 2600 IOPS(3600 IOPS 减 1000 IOPS)的速率填充。有关不同实例的基准速率,请参见 Amazon EBS 优化实例。此外,我们每 24 小时对突发存储桶进行填充,这意味着,该实例每天至少可使用 30 分钟的突发性能。

性能增强

我们持续对 Nitro 系统进行改进。通过增强功能集合,我们将 large、xlarge 和 2xlarge EC2 C5/C5d 和 M5/M5d 实例的最大突发带宽从 2.25Gbps 和 2.12Gbps 提高到了 3.5Gbps。我们还将 EC2 C5/C5d 和 M5/M5d 的最大突发 IOPS 从 16000 IOPS 分别提升到了 20000 IOPS 和 18750 IOPS。所有新的 EC2 C5/C5d 和 M5/M5d 更小型实例都可以享受这些性能提升,且无需额外费用。


有关支持这种突发功能的基于 Nitro 系统的实例列表和相应数据,请参见 Amazon EBS 优化实例。


本文转载自 AWS 技术博客。


原文链接:


https://amazonaws-china.com/cn/blogs/china/amazon-ebs-case-function-improve-cost-reduce/


2019-10-07 15:501165
用户头像

发布了 1957 篇内容, 共 166.3 次阅读, 收获喜欢 82 次。

关注

评论

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

温湿度计设备通过阿里云IoT物联网套件上报数据到钉钉群机器人实践——数据价值类

阿里云AIoT

JavaScript Serverless 物联网 机器人 机器学习/深度学习

有效载荷标识与内容类型--MQTT 5.0新特性

EMQ映云科技

物联网 IoT mqtt 企业号 3 月 PK 榜 有效载荷标识

专场直播预约 | KaiwuDB 离散制造业场景解决方案

KaiwuDB

数据库 KaiwuDB 离线制造业 行业解决发展

pytest学习和使用2-初步使用和用例运行

Python 自动化测试 pytest

1个案例读懂——游戏产品如何用A/B测试做增长

字节跳动数据平台

云服务 AB testing实战 A/B测试 企业号 3 月 PK 榜

武汉等保测评有限公司有哪几家?具体位于哪里?

行云管家

等保 等保测评 等保2.0 武汉

pytest学习和使用1-pytest安装和版本查看

Python 自动化测试 pytest

国家高新技术企业是国企吗?获得高新企业证书有什么用?

行云管家

高新企业 高新技术

基于 Apache Flink 的实时计算数据流业务引擎在京东零售的实践和落地

Apache Flink

大数据 flink 实时计算

技术详解 阿里云AIoT物模型支撑设备规模已超亿级——设备管理运维类

阿里云AIoT

运维 安全 监控 物联网 芯片

8年Java架构师面试官教你正确的面试姿势,10W字面试题搞定春招!

小小怪下士

Java 程序员 后端 java面试

实战|网站监控如何做好监测点管理与内网数据采集

云智慧AIOps社区

安全 监控 监控宝 云智慧 网站监控

大资管行业数字化转型解决方案 | 行业方案

袋鼠云数栈

大数据 数字化转型 解决方案

【分布式技术专题】「分布式技术架构」一文带你厘清分布式事务协议及分布式一致性协议的算法原理和核心流程机制(Paxos篇)

码界西柚

分布式 PAXOS paxos协议 算法分析

阿里120W年薪架构师力荐750页微服务架构深度解析笔记

程序知音

Java 微服务 编程语言 后端技术

浅谈DWS函数出参方式

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号 3 月 PK 榜

NFTScan 与 UniPass 达成合作伙伴,双方在多链 NFT 数据方面展开合作!

NFT Research

NFT

GuavaCache与物模型大对象引起的内存暴涨分析——设备管理运维类

阿里云AIoT

缓存 算法 监控 物联网 数据格式

火山引擎DataLeap:数据秒级生产,揭秘电商实时数仓最佳实践!

字节跳动数据平台

数据治理 电商 数据研发 企业号 3 月 PK 榜

基于声网 Flutter SDK 实现互动直播

RTE开发者社区

flutter

Tapdata Connector 实用指南:云原生数仓场景之数据实时同步到 Databend

tapdata

数据库 大数据

【3.10-3.17】写作社区优秀技术博文一览

InfoQ写作社区官方

热门活动 优质创作周报

Matlab常用图像处理命令108例(八)

timerring

图像处理

阿里云AIoT物联网平台如何实现设备全球就近接入——设备接入类

阿里云AIoT

运维 监控 物联网 中间件 数据采集

共享订阅--MQTT 5.0新特性

EMQ映云科技

物联网 IoT mqtt 企业号 3 月 PK 榜 共享订阅

全能代码编辑器:CodeRunner 最新激活版

真大的脸盆

Mac 代码编辑器 Mac 软件 代码编辑 编辑代码

物联网数据应用开发最佳实践——数据价值类

阿里云AIoT

数据挖掘 物联网 存储 数据管理 调度

什么是安全文件传输

镭速

使用 Amazon EBS 优化实例突发功能提高应用程序性能并降低成本_语言 & 开发_亚马逊云科技 (Amazon Web Services)_InfoQ精选文章