如何计算 AWS RDS 上的当前 IOPS 使用情况和 IOPS 信用计数以及图表

如何计算 AWS RDS 上的当前 IOPS 使用情况和 IOPS 信用计数以及图表

我在 AWS 上有一个正在运行的 Mysql db.m3.medium RDS 实例,使用 20GB SSD 运行,如下所示:RDS 机器描述

上一小时的写入和读取操作如下:磁盘操作

看起来最大(写入)+最大(读取)操作总数约为每秒 50 次,这意味着它低于 3 * disk_capacity = 3 * 20 = 60 iops/秒。所以这意味着每一秒我的信用余额都会额外增加 10 iops。

考虑到这一点,我当前的信用数是该时间段(1 小时)之前的信用数 + 总和(每秒时间段的信用余额)?

这是计算当前 IOPS 使用情况和信用累积/计数的正确方法吗?

如果是这样,那么就没有显示 IOPS 信用使用情况的 AWS 图表,因为有 CPU 信用使用情况,对吗?

答案1

正如所提到的如何查看我的 IOPS 突发积分?来源):

不幸的是,没有像 CPU 信用那样针对当前 IOPS 信用余额的 Cloudwatch 指标。

截至 2016 年 7 月,该政策仍未实施。

AWS 文档对 IOPS 突发提供了很好的介绍:

每个卷都会获得 540 万个 I/O 积分的初始 I/O 积分余额,足以维持 30 分钟内 3,000 IOPS 的最大突发性能。此初始积分余额旨在为启动卷提供快速的初始启​​动周期,并为其他应用程序提供良好的引导体验。卷以每 GiB 卷大小 3 IOPS 的基准性能率获得 I/O 积分。例如,100 GiB gp2 卷的基准性能为 300 IOPS。

当您的卷需要的 I/O 级别超过基准性能时,它会利用信用余额中的 I/O 信用突增到所需的性能级别,最高可达 3,000 IOPS。大于 1,000 GiB 的卷的基准性能等于或大于最大突增性能,并且其 I/O 信用余额永远不会耗尽。当您的卷使用的 I/O 信用少于其在一秒钟内获得的信用时,未使用的 I/O 信用将添加到 I/O 信用余额中。卷的最大 I/O 信用余额等于初始信用余额(540 万个 I/O 信用)。

举个例子,您的 20 GB 卷的基本性能为 60 IOPS。如果您平均使用 50 IOPS,则每秒将有 10 个 I/O 积分添加到您的积分余额中,最高可达 540 万个 I/O 积分。

答案2

AWS刚刚发布了该功能,这可能有助于您监控您的IOPS:

突发存储桶指标现已适用于 Amazon EBS 通用 SSD (gp2) 卷

(目前它仅适用于 gp2 卷,但我们可以猜测其他卷正在开发中)

答案3

尽管突发余额图表尚未在 Web 控制台中提供,但可以使用以下命令在 aws cli 中检索:

aws cloudwatch get-metric-statistics --namespace AWS/RDS --metric-name  BurstBalance --dimensions Name=DBInstanceIdentifier,Value=YOUR_INSTANCE_NAME --start-time $(date +%s -d "-6 hours") --end-time $(date +%s) --period 30 --statistics Average

该命令将返回如下内容:

DATAPOINTS      99.999962963    2018-12-26T18:00:00Z    Percent
DATAPOINTS      100.0   2018-12-26T17:25:00Z    Percent
DATAPOINTS      99.999962963    2018-12-26T16:50:00Z    Percent
DATAPOINTS      100.0   2018-12-26T16:15:00Z    Percent

答案4

这适用于 EC2 gp2 卷以及 RDS gp2 卷。

要查看 EC2 EBS 卷,请转到 Cloudwatch -> Metrics -> EBS -> BurstBalance。

要查看 RDS 实例,请转到 Cloudwatch -> Metrics -> RDS -> BurstBalance。

相关内容