【问题标题】:Calculating RU charge on Cosmos DB计算 Cosmos DB 上的 RU 费用
【发布时间】:2021-04-19 12:13:45
【问题描述】:
当您为 Cosmos DB 进行 RU 计算时,您需要计算读取、插入、更新和删除的最大值还是每秒的平均数?
我问的原因是因为平均读取的文档(在当前的 mongo db 中)大约是 5500,但在我的采样期间读取的最大文档数(秒)是 965880。
我查看了 Microsoft 关于 Costing Cosmos DB 的所有文档,但对于 RU 吞吐量的数字是平均值还是最大值,没有明确的指导
【问题讨论】:
标签:
azure-cosmosdb
azure-cosmosdb-mongoapi
【解决方案1】:
正如你所说,没有关于设置吞吐量的“平均或最大值”的 MS 文档,在我看来,平均值和最大值都是有意义的,但我们还需要查看最常见的情况,例如,总是在 5800 左右每秒,通常也是每秒 4500,最小值为 3000,最大值为 9000。1 RU 表示“1KB doc read”,如果我们将最大数量设置为吞吐量,那么它既昂贵又浪费,如果我们设置平均值,也许系统通常像the answer 所说的那样“负债”。这就是为什么我说我们还需要考虑“最常见”的情况。
顺便说一下,MS 提供了一个web based tool 来帮助估计典型操作的请求单元要求。如果管理员也不了解数据库的真实情况,我认为this doc 可能会有所帮助,简而言之,文档就是说,如果您正在构建新应用程序或小型应用程序,您可以从最低限度开始RU/s 以避免在开始时过度配置。在运行应用程序一段时间后,也许您可以使用 azure monitor 来确定您的流量模式是否合适。
【解决方案2】:
为避免节流,您需要在 RU 中提供所需的 MAX 吞吐量。此外,这取决于您达到最大 RU 的频率。基本上有 3 种方式来配置 RU - 预配置吞吐量、自动缩放和无服务器(预览版)。
如果您在 400 RU/s 的入口点供应标准(手动)RU/s,您将无法消耗超过 400 RU/s,除非您手动更改吞吐量.您将按每小时标准(手动)预置的吞吐率支付 400 RU/s 的费用。
如果您在最大 RU/s 为 4000 RU/s 的入口点设置 自动缩放吞吐量,则资源将在 400 到 4000 RU/s 之间缩放。由于每 RU/s 的自动缩放吞吐量计费率为标准(手动)费率的 1.5 倍,因此对于系统缩减到最小值 400 RU/s 的小时,您的账单将高于您预置 400 RU/s 的情况。 s 手动。但是,通过自动缩放,如果您的应用程序流量达到峰值,您可以随时消耗高达 4000 RU/s 的流量,而无需用户操作。一般来说,您应该权衡能够以 1.5 倍的自动缩放速率随时消耗高达最大 RU/s 的好处。
对于预期流量较低的小型应用程序,您还可以考虑无服务器容量模式,它会在您使用时计费。
使用 Azure Cosmos DB 容量计算器估算您的吞吐量要求。
一定要仔细阅读这个和相关的文档页面-https://docs.microsoft.com/en-us/azure/cosmos-db/request-units