增加索引是否会导致AWS RDS的写入IOPS升高?

时间:2018-07-31 06:55:27

标签: amazon-web-services amazon-rds

增加索引是否会导致AWS RDS的写入IOPS上升?

我使用的AWS RDS是db.m3.xlarge。 RDS的存储量为50G。

现在,AWS RDS的写入IOPS为120

50G RDS写入IOPS峰值为150

根据官方文件:

https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html

对于每个GiB,通用SSD存储的基准I / O性能为3 IOPS,这意味着更大的卷具有更好的性能。

如何查询RDS写入IOPS升高的原因?

1 个答案:

答案 0 :(得分:1)

让我尝试通过将其分为两个部分来回答这个问题:

我有I / O问题吗?

在MySQL(RDS)服务器上写入IOPS高的背后原因是什么?


我有I / O问题吗?

使用AWS RDS时,没有传统的OS工具,例如systat,iostat,dtstat或sar。了解RDS中发生的情况的工具是cloudwatch指标和提供的图表。

  • 读写IOPS指标: 通过总结ReadIOPS和WriteIOPS,您将看到您的操作消耗了多少IOPS。

  • DiskQueueDepth指标:DiskQueueDepth指标提供了等待访问磁盘的未完成IO(读/写请求)数。如果此指标经常高于2,那么您应该迟早会遇到性能问题。

使用以上两个图表,很容易确定您在IOPS中配置不足还是配置不足。

  1. 如果您的DiskQueueDepth介于 0 0.5 之间,则您的配置已过多。
  2. 如果您的DiskQueueDepth始终位于 2 以上,则说明您的配置不足。

在MySQL(RDS)服务器上写入IOPS高的背后原因是什么?

有多种方法来分析查询,但是当您将RDS与MySQL结合使用时,我建议您使用PERFORMANCE_SCHEMA轻松进行此操作,因为您不需要外部软件(其中一些是外部软件)不完全与RDS兼容)。

您可以参考此video以及查询分析简介,并提供IOPS和按查询模式,用户和表监视临时表的示例。有关更具体的指南(尤其是度量标准的配置),可以查看official manualsys schema documentation

如果您需要快速查看运行情况,可以快速查看SHOW GLOBAL STATUS like 'com\_%';和SHOW GLOBAL STATUS like 'Hand%';在时间间隔上查看您是否增加了每单位时间的SQL查询数或每单位时间的引擎行操作数。


最后,写IOPS的增加通常可能意味着额外的SQL负载(显然),但也意味着很多其他事情,例如,由于临时表的更改而导致执行的临时表过多或查询计划更糟。查询优化方案或您的数据基数/大小。在采取任何措施之前,首先要确定根本原因。

希望这对您有帮助!