【问题标题】:Does increasing the index cause the write IOPS of AWS RDS to rise?增加索引是否会导致 AWS RDS 的写入 IOPS 上升?
【发布时间】:2018-07-31 06:55:26
【问题描述】:
【问题讨论】:
标签:
amazon-web-services
amazon-rds
【解决方案1】:
让我试着把它分成两部分来回答这个问题:
我有 I/O 问题吗?
找出 MySQL (RDS) 服务器上的高写入 IOPS 背后的原因?
我有 I/O 问题吗?
使用 AWS RDS 时,没有传统的操作系统工具,例如 sysstat、iostat、dtstat 或 sar。了解 RDS 中发生的情况的工具是 cloudwatch 指标和提供的图表。
使用上面的两个图表很容易确定您在 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 查询数或每单位时间的引擎行操作数。
总而言之,Write IOPS 的增加通常可能意味着额外的 SQL 负载(显然),但也可能意味着许多其他事情,例如,由于查询优化器的更改,临时表过多或正在执行的查询计划更糟糕计划或您的数据基数/大小。在采取任何行动之前首先确定根本原因至关重要。
希望对你有帮助!