CloudWatch Metrics for Volume IOPS,Volume Throughput(MiB / s)and Network(Gbps)

问题描述 投票:0回答:1

我不得不在AWS上对一个应用程序进行故障排除,并且使用所有CloudWatch Metrics Graphs来解释环境的健康状况并不容易,所以我决定在这里分享我的经验。

[CloudWatch为我们提供了CPU,内存*,磁盘和网络的指标。

*获得安装CloudWatch Agent所需的内存指标。

CPU和内存为我们提供了百分比的度量标准,这显然可以解释。但是磁盘和网络并不是那么容易,例如,我想检查我的卷和网络(Gbps)的IOPS和吞吐量(MiB / s)。

我需要这些值,因为AWS将EBS限制定义为IOPS和吞吐量(MB / s),并将实例网络限制定义为Gbps。

amazon-web-services amazon-cloudwatch amazon-ebs amazon-cloudwatch-metrics
1个回答
0
投票

总IOPSEBS交易量为我们提供了指标VolumeReadOpsVolumeWriteOps。让我引用AWS文档。

VolumeReadOps-指定时间段内的读取操作总数。要计算该时间段的每秒平均读取操作(读取IOPS),请将该时间段内的总读取操作数除以该时间段的秒数。

VolumeWriteOps-指定时间段内的写入操作总数。要计算该时间段的每秒平均写操作(写入IOPS),请将该时间段中的总写操作除以该时间段的秒数。

参考:https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using_cloudwatch_ebs.html

要获得总IOPS,我们需要(VolumeReadOps + VolumeWriteOps) / SecondsInPeriod。幸运的是,CloudWatch可以帮助我们解决Expression。使用下面的表达式,函数PERIOD是我们的朋友。

m1 = VolumeWriteOps - Sum
m2 = VolumeReadOps - Sum
Expression: (m1+m2)/PERIOD(m1)

参考:https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html

总吞吐量(MiB / s)EBS交易量为我们提供了指标VolumeReadBytesVolumeWriteBytes。让我引用AWS文档。

VolumeReadBytes-提供有关指定时间段内读取操作的信息。 Sum统计信息报告该时间段内传输的字节总数。

VolumeWriteBytes-提供有关指定时间段内写入操作的信息。 Sum统计信息报告该时间段内传输的字节总数。

[两个指标都给我们提供bytes中的值,但我们希望它们位于MiB中,因此要进行转换,我们需要除以1048576,这是1024 * 1024的结果。让我详细解释。

1024 bytes = 1 KiB
1024 KiB = 1 MiB

要获得MiB/s中的总吞吐量,我们需要((VolumeReadBytes + VolumeWriteBytes) / 1048576) / SecondsInPeriod。使用下面的表达式,函数PERIOD是我们的朋友。

m1 = VolumeWriteBytes - Sum
m2 = VolumeReadBytes - Sum
Expression: ((m1+m2)/1048576)/PERIOD(m1)

总网络(Gbps)EC2实例为我们提供了指标NetworkInNetworkOut。让我引用AWS文档。

NetworkIn-实例在所有网络接口上接收到的字节数。此度量标准标识到单个实例的传入网络流量。报告的数字是该时间段内接收到的字节数。如果使用的是基本(五分钟)监视,则可以将该数字除以300,以找到字节/秒。如果您有详细的监视(一分钟),请将其除以60。

NetworkOut-实例在所有网络接口上发送的字节数。此度量标准标识单个实例的传出网络流量。报告的数字是在此期间发送的字节数。如果使用的是基本(五分钟)监视,则可以将该数字除以300,以找到字节/秒。如果您有详细的监视(一分钟),请将其除以60。

参考:https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html

[这两个指标都给我们提供bytes per period中的值,但我们希望它们位于gigabits / second中。要从“周期”转换为“秒”,我们只需要除以300(因为我使用的是标准监视)。

要从bytes转换为gigabits,我们需要除以0.008,这是(1000 / 1000 / 1000) * 8的结果。让我详细解释。

1000 bits = 1 kilobits
1000 kilobits = 1 megabits
1000 megabits = 1 gigabits
1 byte = 8 bits

要获得Gbps中的总网络,我们需要((NetworkIn + NetworkOut) / 300) / 0.008

m1 = NetworkIn - Sum
m2 = NetworkOut - Sum
Expression: ((m1+m2)/300)/0.008
© www.soinside.com 2019 - 2024. All rights reserved.