我对 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 是一个很好的工具也为此。
答案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 的总和
如果你有能力让你的工具持续运行,请尝试一下 https://www.metricly.com/iops-calculator-for-ebs-volumes