亚马逊 EBS I/O 特征和监控 - Amazon EBS

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

亚马逊 EBS I/O 特征和监控

在给定的卷配置中,某些 I/O 特性会驱动EBS卷的性能行为。SSD不管 I/O 操作是随机还是顺SSD序gp2操作,由支持的卷——通用型 IOPSSSD(io1io2)和预配置(和)——都能提供一致的性能。gp3HDD-backed volumes(吞吐量优化st1)HDD()和 ColdHDD(sc1)— 仅在 I/O 操作较大且连续运行时才能提供最佳性能。要了解HDD卷在应用程序中的表现SSD以及卷的性能,重要的是要了解卷的需求、IOPS可用卷的数量、完成 I/O 操作所需的时间以及卷的吞吐量限制之间的联系。

IOPS

IOPS是表示每秒输入/输出操作数的计量单位。操作以 KiB 为单位,底层驱动器技术确定卷类型算作单个 I/O 的最大数据量。卷的 I/O 大小上限为 256 KiB,卷的 I/O 大小上限为 1,024 KiB,因为卷SSD处理小规模或随机 I/O 的效率比SSD卷高得多。HDD HDD

当小型 I/O 操作按物理顺序执行时,Amazon 会EBS尝试将它们合并为一个 I/O 操作,最大不超过最大 I/O 大小。同样,当 I/O 操作大于最大 I/O 大小时,Amazon EBS 会尝试将其拆分为较小的 I/O 操作。下表显示了一些示例。

卷类型 最大 I/O 大小 来自应用程序的 I/O 操作 的数量 IOPS 注意
SSD 256 KiB 1 个 1024 KiB I/O 操作 4(1024÷256=4) 亚马逊将 1,024 个 I/O 操作EBS拆分为四个较小的 256 KiB 操作。
8 个连续 32KiB I/O 操作 1(8x32=256) 亚马逊将八个EBS连续的 32 KiB I/O 操作合并为一个 256 KiB 的操作。
8 个随机 32 KiB I/O 操作 8 Amazon 单独EBS计算随机 I/O 操作。
HDD 1,024 KiB 1 个 1024 KiB I/O 操作 1 I/O 操作已经等于最大 I/O 大小。它不会被合并或拆分。
8 个连续 128KiB I/O 操作 1(8x128=1024) 亚马逊将八个连续的 128 KiB I/O 操作EBS合并为一个 1,024 KiB 的 I/O 操作。
8 个随机 32 KiB I/O 操作 8 Amazon 单独EBS计算随机 I/O 操作。

因此,当您创建SSD支持 3,000 的卷时IOPS(通过将预配置卷配置为 3,000 IOPS 或将通用IOPSSSDSSD卷的大小调整为 1,000 GiB),然后将其连接到可以提供足够带宽的EBS优化实例时,您每秒最多可以传输 3,000 个 I/O 数据,吞吐量由 I/O 大小决定。

卷队列长度和延迟

卷队列长度是指等待设备处理的 I/O 请求的数量。延迟是 I/O 操作的真实 end-to-end 客户机时间,换句话说,从EBS向发送 I/O 读取或写入已完成的确认之间经过的时间。EBS必须根据 I/O 大小和延迟正确校准队列长度,以避免在客户机操作系统或网络链接上造成瓶颈。EBS

每个工作负载的最佳队列长度各不相同,具体取决于特定应用程序的敏感IOPS度和延迟。如果您的工作负载没有提供足够的 I/O 请求来充分利用EBS卷的可用性能,则您的卷可能无法提供您预配置的IOPS或吞吐量。

事务密集型应用程序对增加的 I/O 延迟很敏感,非常适合SSD由支持的卷。通过保持较低的队列长度和大量IOPS可供卷使用的队列长度,您可以保持较高的延迟,IOPS同时保持较高的延迟。持续IOPS向某个卷驱动的数量超过其可用容量可能会导致 I/O 延迟增加。

吞吐量密集型应用程序对增加的 I/O 延迟不太敏感,非常适合由支持的卷。HDD在执行大型顺序 I/O 时,您可以通过保持较高的队列长度来保持HDD支持卷的高吞吐量。

I/O 大小和卷吞吐量限制

对于SSD由支持的卷,如果您的 I/O 大小非常大,则由于已达到卷的吞吐量限制,您遇到的数量可能会少IOPS于预配置的卷。例如,如果gp2容量低于 1,000 GiB 且可用的突发积分,其上IOPS限为 3,000,卷吞吐量限制为 250 MiB/s。如果您使用的是 256 KiB 的 I/O 大小,则您的卷将达到 1000 的吞吐量上限IOPS(1000 x 256 KiB = 250 MiB)。对于较小的 I/O 大小(例如 16 KiB),同样的容量可以维持 3,000,IOPS因为吞吐量远低于 250 MiB/s。(这些示例都假设卷的 I/O 不会达到实例的吞吐量限制。) 有关每种EBS卷类型的吞吐量限制的更多信息,请参阅Amazon EBS 卷类型

对于较小的 I/O 操作,您可能会看到从实例内部测量的 higher-than-provisioned IOPS值。当实例操作系统在将小型 I/O 操作传递给 Amazon EBS 之前将其合并到较大的操作中时,就会发生这种情况。

如果您的工作负载在HDD备份st1sc1卷上使用顺序 I/O,则从实例内部测得的IOPS数量可能会高于预期。当实例操作系统将顺序 I/O 进行合并,并以 1024 KiB 大小为单位来对其进行计数时,会发生这种情况。如果您的工作负载使用小型随机 I/O,则吞吐量可能会低于您的预期。这是因为我们将每个随机、非顺序的 I/O 计IOPS入总数,这可能会导致您比预期更快地达到音量IOPS限制。

无论您的EBS卷类型如何,如果您的配置中没有达到预期的IOPS或吞吐量,请确保您的EC2实例带宽不是限制因素。为了获得最佳性能,您应始终使用最新一代的EBS优化实例(或包含 10 Gb/s 网络连接的实例)。未达到预期效果的另一个可能原因IOPS是您没有为EBS卷驱动足够的 I/O。

使用监控 I/O 特性 CloudWatch

您可以使用每个卷的CloudWatch 卷指标来监控这些 I/O 特征。要考虑的重要指标包括以下内容:

  • VolumeStalledIOCheck

  • BurstBalance

  • VolumeReadBytes | VolumeWriteBytes

  • VolumeReadOps | VolumeWriteOps

  • VolumeQueueLength

VolumeStalledIOCheck监控您的EBS卷状态以确定您的卷何时受损。该指标是一个二进制值,它将根据EBS卷能否完成 I/O 操作返回 01(通过)或(失败)状态。此检查可检测 Amazon EBS 基础设施存在的潜在问题,例如:

  • 卷底层存储子系统的硬件或软件问题 EBS

  • 物理主机上的硬件问题会影响从您的实例访问EBS卷的能力 EC2

  • 实例和EBS卷之间的连接问题

如果该VolumeStalledIOCheck指标失败,您可以等待 AWS 问题得到解决,也可以采取措施,例如更换受影响的卷或停止并重新启动该卷所连接的实例。在大多数情况下,当该指标失败时,EBS将在几分钟内自动诊断并恢复您的音量。您可以使用中的 Pause I/O 操作 AWS Fault Injection Service 来运行受控实验,以测试您的架构并基于此指标进行监控,从而提高存储故障恢复能力。

您可以使用VolumeReadOps、、VolumeWriteOps和来衡量 Amazon EBS 存储 I/O 延迟VolumeTotalWriteTimeVolumeTotalReadTime您可以使用以下公式来监控卷的平均 I/O 延迟:

Average I/O latency in ms/op = (VolumeTotalReadTime + VolumeTotalWriteTime) / (VolumeReadOps + VolumeWriteOps)

如果您的 I/O 延迟高于您的需求,请检查您的驱动器,IOPS并确保您的应用程序尝试驱动的驱动器不会IOPS超过您的预配置。您可以使用以下公式来监控交易量驱动IOPS的平均值:

Estimated average IOPS in ops/s = (Sum(VolumeReadOps) + Sum(VolumeWriteOps)) / (Period - Sum(VolumeIdleTime))

如果您的应用程序需要的数量IOPS超过您的卷所能提供的数量,则应考虑使用以下方法之一:

  • A gp3 io2、或io1卷,其配置的容量足IOPS以达到所需的延迟

  • 更大的gp2音量可提供足够的基准IOPS性能

HDD-backe sc1 dst1,卷旨在在利用最大 1,024 KiB 的 I/O 大小的工作负载中表现最佳。要确定卷的平均 I/O 大小,请将 VolumeWriteBytes 除以 VolumeWriteOps。同样的计算也适用于读取操作。如果平均 I/O 大小低于 64 KiB,则提高发送到 st1sc1 卷的 I/O 操作的大小应该能够提高性能。

注意

如果平均 I/O 大小达到或接近 44 KiB,说明您可能是在不支持间接描述符的情况下使用实例或内核。所有 Linux 内核 3.8 及更高版本的内核上具有此支持,任何当代实例也具有此支持。

BurstBalance 以剩余余额百分比的形式显示 gp2st1sc1 卷的突增存储桶余额。当您的突增存储桶耗尽时,卷 I/O(对于 gp2 卷)或卷吞吐量(对于 st1sc1 卷)会限定在基准水平。检查 BurstBalance 值以确定卷是否因为此原因而受限制。有关可用亚马逊EBS指标的完整列表,请参阅亚马逊针对亚马逊的 CloudWatch 指标 EBS基于 Nitro的实例的亚马逊EBS指标

相关资源

有关 Amazon EBS I/O 特性的更多信息,请参阅以下 re: Invent 演示文稿:亚马EBS逊:为性能而设计