【问题标题】:Does increasing the index cause the write IOPS of AWS RDS to rise?增加索引是否会导致 AWS RDS 的写入 IOPS 上升?
【发布时间】:2018-07-31 06:55:26
【问题描述】:

增加索引是否会导致 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

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

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

【问题讨论】:

  • “增加索引”是什么意思?

标签: amazon-web-services amazon-rds


【解决方案1】:

让我试着把它分成两部分来回答这个问题:

我有 I/O 问题吗?

找出 MySQL (RDS) 服务器上的高写入 IOPS 背后的原因?


我有 I/O 问题吗?

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

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

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

使用上面的两个图表很容易确定您在 IOPS 中是配置不足还是过度配置。

  1. 如果您的 DiskQueueDepth 始终介于 00.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 查询数或每单位时间的引擎行操作数。


总而言之,Write IOPS 的增加通常可能意味着额外的 SQL 负载(显然),但也可能意味着许多其他事情,例如,由于查询优化器的更改,临时表过多或正在执行的查询计划更糟糕计划或您的数据基数/大小。在采取任何行动之前首先确定根本原因至关重要。

希望对你有帮助!

【讨论】:

    猜你喜欢
    • 2019-05-02
    • 2017-09-15
    • 1970-01-01
    • 2013-09-17
    • 1970-01-01
    • 2018-11-04
    • 1970-01-01
    • 1970-01-01
    • 2021-03-22
    相关资源
    最近更新 更多