我在 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
答案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。