Azure Database for MySQL 灵活服务器性能功能
可以基于三个服务层级之一创建 Azure Database for MySQL 灵活服务器:可突发、常规用途和业务关键。 服务层级提供更高级别的计算和存储大小,以及更多的受支持最大连接数和每秒 I/O 操作次数 (IOPS)。 一台 MySQL 灵活服务器可以托管多个数据库。 你可以监视 MySQL 灵活服务器的性能指标,例如 CPU 和内存使用率、I/O 性能、查询指标等,以便做出明智的容量决策。
计算大小:RAM 和核心
这三个服务层级提供不同的基础 VM SKU。 可突发层级使用 B 系列 VM,常规用途层级使用 D 系列 VM,业务关键层级使用 E 系列 VM。 使用的 VM 系列决定了服务器上可用的 vCore 数量和 RAM 量。
创建服务器后,可以更改计算层级、计算大小和存储大小。 更改计算层级或计算大小后需要重启,重启过程通常需要一到两分钟才能完成。 更改存储大小后不需要重启。
对于非生产(开发、暂存、测试等)工作负载,请考虑使用基于可突发层级的服务器,这样可为不持续使用完整 CPU 的工作负载提供经济高效的解决方案。 在使用率较低期间,使用 B 系列 VM 的服务器会累积 CPU 积分,可以在使用率较高期间使用这些积分,以便将性能“突发”到基线以上。 如果基线太高,或者高使用率突发次数太多,请考虑升级到常规用途或业务关键层级,以避免性能下降。
服务层级计算大小
这三个服务层级分别提供不同级别的计算能力。 可突发层级最多支持 20 个 vCore,常规用途层级最多支持 64 个 vCore,而业务关键层级最多支持 96 个 vCore,提供最高级别的计算能力。 业务关键层级还提供 Ev5 系列 VM,与 Ev4 系列 VM 相比,其 QPS 最多可提高 30%,延迟时间最多可降低 50%。
IOPS:预配与自动缩放
每秒可执行的读写操作次数称为存储 IOPS(每秒 I/O 操作次数)。 更高的 IOPS 设置可提供更好的存储性能:更多的同时读/写操作可以加快数据检索、数据持久性、索引更新和提高整体数据库效率。 如果 IOPS 设置过低,数据库可能会遇到处理延迟和性能下降的问题。 但是,如果 IOPS 设置过高,则成本可能会增加,同时你却察觉不到任何性能改进。
对于 Azure Database for MySQL 灵活服务器,你可以预配 IOPS,也可以使用自动缩放 IOPS 功能。
使用预配 IOPS 时,可以分配特定数量的 IOPS 来提供一致且可预测的性能,如果负载未接近 I/O 操作的限制阈值,则此方法非常有效。 虽然始终可以随着工作负载需求的增加分配额外的 IOPS,但这需要手动干预。
启用自动缩放 IOPS 功能后,IOPS 会根据工作负载活动按需缩放,并且你可以根据使用量付费。 随着工作负载的增加,服务器可以无缝扩展 I/O 性能,让实例能够处理工作负载高峰,并且在流量较低时你无需为未使用的容量付费。
无论对于哪种情况,IOPS 都不能超过服务器的上限。 有关按计算大小划分的最大 IOPS 的信息,请参阅计算和存储文档。
只读副本
随着数据库流量的增加,可以水平或“横向”扩展其容量(计算节点的数量),或者垂直或“纵向”扩展其容量(计算节点的大小)。 只读副本提供水平缩放。
只读副本是数据库的只读副本,它使用 MySQL 的二进制日志复制 (binlog) 保持同步。 随着应用程序的增长,它们需要扩展计算和存储资源(例如数据库)。 通过使用 Azure Kubernetes 服务 (AKS)、虚拟机规模集和应用服务预配新的 VM,可以简化应用程序组件的扩展。 随着这些计算资源的扩展和存储数据的增长,它们会增加数据库的负担,这往往会成为应用程序体系结构中的瓶颈。
使用只读副本可以将只读操作转移到辅助数据库,让主服务器支持读/写操作。 Azure Database for MySQL 提供托管的只读副本。 可以将源服务器复制到最多 10 个副本。 这样可为报告和分析等经常查询大量数据的用例提供帮助。
当查询出于某种原因无法使用索引时,使用只读副本特别有用。 为所有查询模式添加索引可能不切实际,甚至是破坏性的,因为它会给服务器带来额外的负载(处理、磁盘 I/O、存储、事务时间等)。 如果数据仓库不可用或者所需的数据比数据仓库的刷新周期更新,则使用只读副本是在不中断关键读/写操作的情况下运行“大”查询的极好办法。
只读副本不会像高可用性配置那样立即同步。 只读副本不会造成与 HA 解决方案关联的事务延迟,但是当数据从主数据库进入副本时可能会出现轻微的延迟。