增加索引是否会导致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升高的原因?
答案 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中配置不足还是配置不足。
DiskQueueDepth
介于 0 和 0.5 之间,则您的配置已过多。DiskQueueDepth
始终位于 2 以上,则说明您的配置不足。在MySQL(RDS)服务器上写入IOPS高的背后原因是什么?
有多种方法来分析查询,但是当您将RDS与MySQL结合使用时,我建议您使用PERFORMANCE_SCHEMA
轻松进行此操作,因为您不需要外部软件(其中一些是外部软件)不完全与RDS兼容)。
您可以参考此video以及查询分析简介,并提供IOPS和按查询模式,用户和表监视临时表的示例。有关更具体的指南(尤其是度量标准的配置),可以查看official manual和sys schema documentation。
如果您需要快速查看运行情况,可以快速查看SHOW GLOBAL STATUS like 'com\_%'
;和SHOW GLOBAL STATUS like 'Hand%'
;在时间间隔上查看您是否增加了每单位时间的SQL查询数或每单位时间的引擎行操作数。
最后,写IOPS
的增加通常可能意味着额外的SQL负载(显然),但也意味着很多其他事情,例如,由于临时表的更改而导致执行的临时表过多或查询计划更糟。查询优化方案或您的数据基数/大小。在采取任何措施之前,首先要确定根本原因。
希望这对您有帮助!