确定 Azure Database for MySQL 服务器的缩放需求

已完成

在调整计算资源大小时,请考虑现有使用和预测使用是否在容量范围内。 可以通过监视基本性能指标(例如 CPU 和 RAM 利用率)来获取所需的信息。 可以使用慢速查询日志来识别和优化性能不佳的查询,并修复性能问题,而无需缩放计算大小。 还应监视 I/O 性能,确保数据库读取和写入不会造成性能瓶颈。 有效增加主数据库可用容量的另一个选项是预配只读副本来转移查询负载。

监视数据库性能指标

通过 Azure 门户,可访问能够用于监视数据库性能的指标数。 例如,可以将灵活服务器使用的 CPU 百分比可视化。

显示 CPU 利用率的指标的屏幕截图。

由于 CPU 利用率接近 100%,数据库性能会严重下降。 因此,如果灵活服务器上的 CPU 利用率一直高于 50%,请考虑增加计算大小。

可以在监视概述工作簿中查看性能指标。 若要访问概述工作簿,请执行以下步骤:

  1. 在 Azure 门户的左窗格中,在“监视 Azure Database for MySQL 灵活服务器实例”下,选择“工作簿”。

    显示工作簿列表的监视部分的屏幕截图。

  2. 选择“概述”工作簿。 你将看到显示连接、CPU、内存使用情况和其他指标的图形,如以下屏幕截图所示。

    监视概述工作簿的屏幕截图。

除了分析这些指标外,还可以查看服务器诊断,在灵活服务器的“日志”面板深入查看性能。

“日志”面板的屏幕截图,其中显示了查询选择器。

除了这些指标和日志,还可以监视慢速查询日志来详细了解长时间运行的查询。 此信息可显示现有慢速查询以供优化,并且你可设置警报,立即检测将来的查询性能下降以进行缓解。

若要启用慢速查询日志功能,请在与灵活服务器关联的页面上,选择“服务器日志”,然后选择“启用”和“慢速查询日志”复选框。

用于启用慢速查询服务器日志的 Azure 门户页的屏幕截图。

启用慢速查询日志记录后,可以使用日志分析或可视化工作簿查看查询性能见解。 若要访问查询性能见解,请按照上述相同步骤操作,但选择“查询性能见解”而不是“概述”。

你将看到多个可视化效果,包括前 5 个最长查询或慢速查询摘要,如以下屏幕截图所示。

前 5 个最长查询和慢速查询摘要的屏幕截图。

优化服务器性能参数

可以将 MySQL 服务器参数配置为根据监视结果优化性能。 例如,可以增加 innodb_buffer_pool_size 的值,以便在内存中保留更多表数据并节省磁盘读取。 可以增加 innodb_log_file_size 来减少缓冲池的检查点刷新活动,代价是崩溃恢复速度变慢。

如果发现应用程序连接已排队,并且服务器负载是可接受的,则可以增加最大连接数来允许更多并行度。

若要修改服务器参数,请转到 Azure 门户中的 MySQL 灵活服务器,并导航到“服务器参数”部分。 在搜索栏中输入参数名称,或浏览支持的服务器参数 Top 或 All。

探索和启用“自动缩放 IOPS”功能

Azure Database for MySQL 有两种方法来分配磁盘 IO 容量:预先预配的IOPS 和“自动缩放”IOPS(每秒 I/O 操作数)。

如果数据库负载可预测且不会激增,预先预配的 IOPS 可能更好。 服务器获取预配的 IOPS 的基数,你可转到“计算 + 存储”,根据需要分配额外的 IOPS(不超过计算大小上限):

用于添加其他预先预配的 IOPS 的设置面板的屏幕截图。

如果出现峰值,并且 I/O 操作数超过分配的值,服务器性能可能会暂时下降。 但是,容量和成本是可预测的。

“自动缩放 IOPS”功能是为不可预测、存在峰值或不断增长的数据库流量而构建的。 启用此功能后,IOPS 会动态缩放,因此在工作流波动时不需要手动调整来优化成本或性能。 因此,使用“自动缩放 IOPS”功能会以透明方式处理未预测的工作负载峰值,并且你只需为消耗的操作付费,而无需为未使用的容量付费。

对于现有的 MySQL 灵活服务器,可以选择“计算 + 存储”,在 Azure 门户中启用“自动缩放 IOPS”功能:

用于创建自动缩放 IOPS 的选项的屏幕截图。

注意

还可以在服务器创建期间启用“自动缩放 IOPS”功能。

监视 IOPS

通过监视 IOPS,可以确定实例距离最大 IOPS 的距离(如果使用的是预先预配的 IOPS),或者实例距离计算大小上限的距离(如果使用“自动缩放 IOPS”功能)。

若要监视 IOPS 性能,请导航到“监视”部分下的“指标”边栏选项卡,或者导航到“概述”边栏选项卡(如果要查看 IOPS 性能以及其他常见指标)。

“概述”边栏选项卡监视的屏幕截图。

在 WingTip Toys,你预计随着市场营销活动的推出,流量会大幅增加但增加时间不可预测,因此你想要避免无法处理传入订单的风险。 你还想要避免在实际不需要最大容量的情况下为该容量付费。 你选择使用“自动缩放 IOPS”功能,而不是预先预配的 IOPS,这需要根据需要手动添加更多的 IOPS。 此方法在成本效益与按需可伸缩性之间达到平衡。

预配只读副本

预配只读副本以将只读查询分流到单独的数据库,从而减少主应用程序数据库的负载。

若要预配只读副本,请在 Azure 门户中与灵活服务器关联的页面上,选择“复制”,然后选择“添加副本”。

“添加副本”按钮的屏幕截图。

创建只读副本后,可以配置副本服务器名称及其计算和存储设置。 某些设置不可更改,例如从主服务器继承的身份验证。

添加副本的屏幕截图。

在 Wingtip Toys,数据科学团队和报告工具现在可以查询只读副本服务器,从而减少主应用程序数据库上的负载,并不再需要限制分析或限制非工作时间的查询。