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