Azure Database for MySQL - 灵活服务器中的自动缩放 IOPS
存储系统可以执行的读写操作数以每秒输入/输出操作数 (IOPS) 来衡量。 IOPS 值越高表示存储性能越好,这将使数据库能够同时处理更多读取和写入操作。 结果是数据检索速度更快,并提高了整体效率。
如果 IOPS 设置过低,数据库服务器在处理请求时可能会遇到延迟,从而导致性能下降和吞吐量降低。 如果 IOPS 设置过高,可能会导致不必要的资源分配,并可能会增加成本,而不会显著提高性能。
选择 IOPS 管理设置
Azure Database for MySQL - 灵活服务器目前提供两个 IOPS 管理设置:预先预配 IOPS 和自动缩放 IOPS。
预先预配的 IOPS
可以使用预先预配 IOPS 将特定数量的 IOPS 分配给 Azure Database for MySQL - 灵活服务器实例。 为存储卷定义特定的 IOPS 限制可保证每秒处理一定数量的请求。 此设置有助于确保工作负荷的一致且可预测的性能。
预先预配 IOPS 还提供增加与服务器关联的存储卷的预配 IOPS 的灵活性。 可以随时在默认预配级别之外添加额外的 IOPS 来自定义性能,以更好地满足工作负荷要求。
自动缩放 IOPS
自动缩放 IOPS 提供按需缩放 IOPS 的灵活性。 启用自动缩放 IOPS 时,服务器会根据工作负荷的需求自动调整数据库服务器的 IOPS 限制。 这种动态缩放有助于优化工作负荷性能,而无需手动干预或配置。 有关每个服务层级和计算大小支持的最大 IOPS 的详细信息,请参阅服务层级文档。
自动缩放 IOPS 的其他优势包括:
处理工作负荷峰值:自动缩放 IOPS 使数据库能够无缝处理工作负荷峰值或波动,而不会影响应用程序的性能。 此功能有助于确保即使在高峰使用期间也能保持稳定的响应能力。
成本节省:与指定固定 IOPS 限制并据以付费而不考虑用量的预先预配 IOPS 不同,自动缩放 IOPS 只需针对使用的 I/O 操作数付费。 避免针对使用不足的资源进行不必要的预配和付费。 结果既节省了成本又实现了最佳性能,使自动缩放成为高效管理数据库工作负荷的明智选择。
监视存储性能
可以使用可用于 Azure Database for MySQL - 灵活服务器的指标来监视存储 IOPS 利用率。
获取所选时间段的 I/O 利用率概述
- 在 Azure 门户中,前往 Azure Database for MySQL 灵活服务器。
- 在“概述”窗格中,选择“监视”选项卡。
- 在“显示以下最近时间的数据”区域中,选择一个时间段。
查看工作簿以获取增强的指标
- 在 Azure 门户中,前往 Azure Database for MySQL 灵活服务器。
- 转到监视>工作簿。
- 选择增强指标工作簿。
- 在工作簿的“概述”选项卡上,检查是否有“存储 IO 百分比”指标。
添加存储 I/O 百分比和计数的指标
- 在 Azure 门户中,前往 Azure Database for MySQL 灵活服务器。
- 转到监视>指标。
- 选择“添加指标”。
- 在可用指标的下拉列表中,选择“存储 IO 百分比”和“存储 IO 计数”。
选择最佳 IOPS 设置
现在已经知道如何有效地监视 IOPS 使用情况,可以探索服务器的最佳设置了。 为 Azure Database for MySQL - 灵活服务器实例选择 IOPS 设置时,请考虑以下因素。 了解这些因素可以帮助做出明智的决策,以确保工作负荷具有最佳性能和成本效益。
性能优化
借助自动缩放 IOPS,可以满足工作负荷的一致性和可预测性要求,而无需面临存储限制和手动交互以添加更多 IOPS 的缺点。
如果工作负荷具有一致的吞吐量或需要一致的 IOPS,则预先预配 IOPS 可能更可取。 它提供可预测的性能级别,并且 IOPS 的固定分配与指定限制内的工作负荷相关。
如果需要高于常规要求的吞吐量,可以使用预先预配 IOPS 来分配额外的 IOPS。 此选项需要手动交互并了解吞吐量增加时间。
限制的影响
考虑限制对工作负荷的影响。 如果担心由于限制而可能导致性能下降,自动缩放 IOPS 可以动态处理工作负荷峰值,以最大限度地降低限制风险,并帮助将性能保持在最佳水平。
最终,自动缩放和预先预配 IOPS 之间的决策取决于特定的工作负荷要求和性能预期。 分析工作负荷模式,评估成本影响,并考虑限制的潜在影响,以做出符合优先事项的选择。
工作负载注意事项 | 预先预配的 IOPS | 自动缩放 IOPS |
---|---|---|
具有一致且可预测的 I/O 模式的工作负载 | 建议,因为它仅使用预配的 IOPS | 兼容,无需手动预配 IOPS |
具有不同使用模式的工作负载 | 不建议,因为它可能无法在高使用率期间提供高效性能。 | 建议,因为它会自动调整以处理不同的工作负荷 |
具有动态增长或不断变化的性能需求的工作负荷 | 不建议,因为它需要不断调整以适应不断变化的 IOPS 要求 | 建议,因为不需要额外设置即可满足特定吞吐量要求 |
成本注意事项
如果工作负荷波动且峰值不可预测,则选择自动缩放 IOPS 可能更具成本效益。 它确保只需为高峰期使用的较高 IOPS 付费,从而提供灵活性并节省成本。 尽管预先预配 IOPS 提供一致的最大 IOPS,但它的成本可能会更高,具体取决于工作负荷。 请考虑服务器所需的成本和性能之间的权衡。
测试和评估
如果不确定最佳 IOPS 设置,请考虑使用自动缩放 IOPS 和预先预配 IOPS 来运行性能测试。 评估结果并确定哪个设置符合工作负载要求和性能预期。
示例工作负荷:电子商务网站
假设有一个电子商务网站,该网站的流量全年都在波动。 在正常时间段内,工作负荷为中等。 但在节假日或特别促销活动期间,流量会呈指数级激增。
使用自动缩放 IOPS,数据库可以动态调整其 IOPS,以处理高峰时间段增加的工作负荷。 当流量达到峰值时(例如黑色星期五促销期间),自动缩放功能可用于将数据库无缝扩展 IOPS 来满足需求。 此功能有助于确保平稳和不间断的性能,并有助于防止速度变慢或服务中断。 高峰期过后,当流量减少时,IOPS 会重新缩减。 然后节省成本,因为只需为激增期间利用的资源付费。
如果选择预先预配 IOPS,则需要估计最大工作负荷容量并相应地分配固定数量的 IOPS。 但是,在高峰期,工作负荷可能会超出预定的 IOPS 限制。 然后,存储 I/O 可能会进行限制,从而影响性能,并可能导致用户遭遇延迟或超时。
示例工作负荷:用于报告和数据分析的平台
假设正在使用 Azure Database for MySQL - 灵活服务器进行数据分析,用户在其中提交复杂的查询和大规模数据处理任务。 工作负荷模式相对一致,全天有稳定的查询流。
使用预先预配 IOPS,可以根据预期的工作负荷选择合适数量的 IOPS。 只要所选的 IOPS 能够充分处理每日查询量,就不存在限制或性能下降的风险。 这种方法提供了成本可预测性,能够高效地优化资源,而且无需动态缩放。
在这种情况下,自动缩放功能可能不会提供显著优势。 由于工作负荷一致,因此可以为数据库预配固定数量的 IOPS,从而轻松满足需求。 自动缩放可能不是必需的,因为没有需要额外 IOPS 的活动激增。
通过使用预先预配 IOPS,可以获得可预测的性能,而无需缩放。 成本直接绑定到分配的存储。
常见问题解答
如何从预先预配 IOPS 移到自动缩放 IOPS?
- 在 Azure 门户中,查找相关 Azure Database for MySQL 灵活服务器。
- 转到“设置”窗格,然后选择“计算 + 存储”。
- 在“IOPS”部分中,选择“自动缩放 IOPS”,并保存设置以应用修改。
进行更改后,自动缩放 IOPS 要多久才会生效?
为 Azure Database for MySQL 灵活服务器启用自动缩放 IOPS 并保存设置后,更改将在成功完成资源部署后立即生效。 自动缩放 IOPS 功能将立即应用于数据库。
时间点还原操作如何影响 IOPS 使用情况?
在 Azure Database for MySQL - 灵活服务器中的时间点还原 (PITR) 操作期间,将创建新服务器,并将数据从源服务器的存储复制到新服务器的存储。 此过程会导致源服务器上的 IOPS 使用量增加。
IOPS 使用量增加是正常现象,并不表示源服务器或 PITR 操作有任何问题。 PITR 操作完成后,源服务器上的 IOPS 使用量将恢复到正常水平。
有关 PITR 详细信息,请参阅在 Azure Database for MySQL - 灵活服务器中进行备份和还原。
当服务器正在使用自动缩放 IOPS 功能时,如何知道 IOPS 已纵向扩展和缩减? 是否可以监视服务器的 IOPS 使用情况?
请参阅本文前面的监视存储性能部分。 它有助于确定服务器在特定时间范围内是否已纵向扩展或缩减。
以后是否可以在自动缩放 IOPS 和预先预配 IOPS 之间切换?
是的。 可以通过在“设置”窗格的“计算 + 存储”部分进行选择,移回预先预配 IOPS。
如何知道在 Azure Database for MySQL - 灵活服务器中使用的 IOPS 数?
转到“概述”部分中的“监视”,或转到“监视”窗格中的“存储 IO 计数指标”。 存储 IO 计数指标提供服务器在所选时间范围内使用的 IOPS 总和。