从我的 AWS EC2 上的应用程序查找 EBS 卷的当前 IOPS 使用情况

从我的 AWS EC2 上的应用程序查找 EBS 卷的当前 IOPS 使用情况

我对 AWS 和磁盘性能还比较陌生。我试图弄清楚我的应用程序需要多少预置 IOPS 才能表现良好。

目前,我的 PHP 和 MySQL 应用程序托管在附加了简单 EBS 卷的 EC2 实例上。EBS 卷的监控提供了读取吞吐量和写入吞吐量以及其他一些矩阵。如何从读取吞吐量(~ 400 Ops/s)和写入吞吐量(~ 4000 Ops/s)数据中找到当前 EBS 卷的 IOPS?

如果我采用每秒操作数的单位,IOPS 会达到大约 4.5K,我认为这是不正确的,因为简单的 EBS 卷只能在 100 IOPS 和偶尔几百 IOPS 上正常工作。

答案1

iostat在您的应用程序/实例中,我会尝试跟踪受控应用程序运行期间的输出。也许iostat -x 1在终端窗口中。

我也喜欢collectl 实用程序观看此输出。nmon 是一个很好的工具也为此。

另请阅读本文...比想象的还要奇怪:系统地了解 EC2 I/O

答案2

您可以在cloudwatch中检查

检查 EBS 指标并选择 VolumeWriteOps(指标名称)

从图中任意取样

例如

数据点:152398,2011-02-10T07:54+0000(图表中任意最高计数)

so it means 152398 IOPS for 10 mins intervel 

计算 1 分钟

152398 IOPS / 10 minutes = 15239.8 IOPS/minute

然后计算60 seconds

15239.8 IOPS / 60 seconds = 253.996666667 IOPS/second

你的音量253平均值是多少IOPS / seconds

答案3

我已经与 AWS 支持人员就此问题进行了很长时间的讨论

补充 Ramesh 所写的内容

IOPS 的计算方式为 VolumeReadOps + VolumeWriteOps 的总和

http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/monitoring-volume-status.html#using_cloudwatch_ebs

如果你有能力让你的工具持续运行,请尝试一下 https://www.metricly.com/iops-calculator-for-ebs-volumes

相关内容