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