使用 Azure Cosmos DB 容量计算器进行容量估算
可通过多种方式为 Azure Cosmos DB 工作负载执行容量规划:
- 如果要迁移现有数据库工作负载,但只知道现有群集中的 vcore 数和服务器数,则需要使用 [vCore 或 vCPU(/azure/cosmos-db/convert-vcore-to-request-unit) 估计请求单位数。 我们将在“迁移”模块下更详细地讨论本主题。
- 如果知道当前数据库工作负载的典型请求速率,可以使用 Azure Cosmos DB 容量规划器估算请求单位数。
若要优化 Azure Cosmos DB 中的成本和性能,必须为数据库和集合工作负载提供适当的吞吐量(每秒请求单位数或简称 RU/秒)。 Azure Cosmos DB 容量规划器将帮助我们估算 Azure Cosmos DB for MongoDB 工作负载所需的 RU/秒。 让我们更详细地了解此工具。
Azure Cosmos DB 容量规划器
Azure Cosmos DB 容量规划器是一种联机工具,它将基于定义工作负载本身的多个参数估算工作负载所需的 RU/秒量。 容量规划器提供两种模式:“基本”和“高级”。 让我们看看将为每个模式定义的不同工作负载参数。
基本模式
“基本模式”为工作负载提供快速成本和吞吐量估算。 此模式需要较少的工作负载信息,并且假设你使用的是用于索引策略、一致性和其他 Azure Cosmos DB 参数的默认 Azure Cosmos DB 设置。
让我们查看要输入的不同工作负载参数和值。
- API - 选择“适用于 MongoDB 的 Cosmos DB API”。
- 区域数 - Azure Cosmos DB for MongoDB 面向所有 Azure 区域提供。 选择你的工作负荷所需的区域数目。
- 多区域写入 - 如果已启用,则应用程序可以在任何 Azure 区域中进行读取和写入。 如果已禁用,应用程序只能将数据写入单个区域,但可以从任何所选区域读取数据。
- 如果你预计在不同区域中会有需要低延迟写入的主动-主动工作负载,请启用它。
- 多区域写入可保证 99.999% 的读取和写入可用性。
- 与单一写入区域相比,多区域写入需要更多的吞吐量。
- 存储在事务存储中的总数据 - 预计单个区域内事务存储中存储的总数据 (GB)。
- 使用分析存储 - 如果要使用 Synapse 分析存储,请选择“打开”。
- 如果设置为“打开”,请输入“存储在分析存储中的总数据”,这表示预计在单个区域的分析存储中存储的数据 (GB)。
- 项目大小 - 文档的估计平均大小 (1 KB - 2 MB)。
- 查找操作数/秒 - 每个区域每秒的预期查找操作数。
- 插入操作数/秒 - 每个区域每秒的预期插入操作数。
- 更新操作数/秒 - 每个区域每秒的预期更新操作数。
- 选择自动编制索引时,该更新操作的“RU/秒”估计值被当作每次更新更改的一个属性来计算。
- 删除操作数/秒 - 每个区域每秒的预期删除操作数。
选择“计算”后,“成本估算”选项卡将显示存储和预配吞吐量的总成本。 请注意,默认情况下,它将显示 EST. THROUGHPUT REQUIRED,但你可以选择“显示详细信息”查看不同类型 CRUD 和查询请求的估计成本。
提示
如果更改任何参数以获取新的估计,请不要忘记再次选择“计算”。
高级模式
“高级模式”需要更详细的工作负载视图。 需要提供更多设置,以便对工作负载的成本和吞吐量进行更精确的估计。 若要选择容量规划器的高级模式,需要使用用于连接到 Azure 的帐户登录到该工具。 可以在工具右上角找到“登录”选项。
登录后,你会注意到一组比基本模式更详细的参数集。 让我们查看要输入的不同工作负载参数和值。
- API - 选择“适用于 MongoDB 的 Cosmos DB API”。
- 区域数 - Azure Cosmos DB for MongoDB 面向所有 Azure 区域提供。 选择你的工作负荷所需的区域数目。
- 多区域写入 - 如果已启用,则应用程序可以在任何 Azure 区域中进行读取和写入。 如果已禁用,应用程序只能将数据写入单个区域,但可以从任何所选区域读取数据。
- 如果你预计在不同区域中会有需要低延迟写入的主动-主动工作负载,请启用它。
- 多区域写入可保证 99.999% 的读取和写入可用性。
- 与单一写入区域相比,多区域写入需要更多的吞吐量。
- 默认一致性 - Azure Cosmos DB for MongoDB 支持 4 种一致性级别,使开发人员可在一致性、可用性和延迟之间进行权衡。 我们将在“复制、监视和优化”模块中更详细讨论一致性级别。
- 索引策略 - 此设置定义工作负载如何计划使用其索引。 我们将在“设计适用于 Azure Cosmos DB 的 MongoDB 数据库”模块中更详细地讨论索引。 若要了解详细信息,请参阅适用于 MongoDB 的 API 中的索引管理。
- 如果选择“关闭”选项,则不会为任何属性编制索引,从而导致最低的 RU 写入费用。 需要使用 _id 字段和每个查询的分片键进行查询,任何其他查询都将扫描所有分区。
- 如果选择“自动”选项,则会为文档中的所有字段/属性编制索引,从而允许灵活高效的查询。
- 如果选择“自定义”选项,可以定义使用多键索引或复合索引编制索引的属性。
- 可以稍后在表单中输入编制索引的属性的数量。
- 存储在事务存储中的总数据 - 预计单个区域内事务存储中存储的总数据 (GB)。
- 使用分析存储 - 如果要使用 Synapse 分析存储,请选择“打开”。
- 如果设置为“打开”,请输入“存储在分析存储中的总数据”,这表示预计在单个区域的分析存储中存储的数据 (GB)。
- 工作负载模式 - 选择是希望工作负载“稳定”(常量)还是“可变”。
- 如果希望工作负载量为常量,请选择“稳定”。
- 如果工作负载随时间推移而变化,请选择“可变”。 例如,在周末和/或假日季节销售额大幅增长的一家零售公司。
- 选择“可变”时,请输入“高峰时间百分比”。
- 使用高峰和非高峰时间间隔,你能够相应地以编程方式缩放预配吞吐量,从而优化成本。
- 项目大小 - 文档的估计平均大小 (1 KB - 2 MB)。
- 你还可以上传示例 (JSON) 文档以获得更准确的估计。
- 如果你的工作负荷在同一容器中有多个类型的项(包含不同的 JSON 内容),则可以上传多个 JSON 文档并获得估计值。 可以使用“添加新项”按钮添加多个示例 JSON 文档。
- 操作类型 - 操作的类型,例如查找、聚合、修改等。
- 每个调用的请求单位 (RU) 费用 - 执行所选操作类型的估计 RU/秒费用。
- 每个区域调用数/秒 - 每个区域每秒执行的所选操作类型数。
选择“计算”后,“成本估算”选项卡将显示存储和预配吞吐量的总成本。 请注意,默认情况下,它将显示 EST. THROUGHPUT REQUIRED,但你可以选择“显示详细信息”查看不同类型 CRUD 和查询请求的估计成本。
提示
如果更改任何参数以获取新的估计,请不要忘记再次选择“计算”。
注意
所有价格显示为美元。 若要按区域查看所有费率,请参阅 Azure Cosmos DB 定价页。