我正在为 Cosmos db 项目进行成本分析。我使用 Cosmos 数据库容量计算器进行成本估算。在容量计算器中,我将存储添加为
1000GB
,它给出了 EST. STORAGE COST PER MONTH
数量,并且根据工作负载详细信息,容量计算器将 3,973RU/s
给出为 EST. THROUGHPUT REQUIRED
表示事务工作负载和 EST. WORKLOAD COST/MONTH
数量。在创建容器时,我输入了 Cosmos 容量计算器本身估计的 3,973RU/s
。
但是,随着存储从约 400GB 增长到更多,随着存储持续增加,预配置吞吐量也自动增加到
5000RU/s
甚至更高,从而增加了总成本。
阅读 Microsoft Azure 文章,我了解到
max(400,10*(total storage), another factor not important here)
应该是最小预配置吞吐量。
3,973RU/s
(通过容量计算器估算)或10,000RU/s
?10,000RU/s
作为所需的最小值吗?考虑到我输入 1000GB
作为总存储量,吞吐量?我可以在创建容器时设置正确的吞吐量。想了解为什么容量计算器在估计总吞吐量(
RU/s
)时不考虑吞吐量直接依赖于存储的事实,而只考虑存储成本?由于我是 Azure 和 ComosDB 的新手,想知道我是否遗漏了任何信息。
计算器似乎没有考虑存储中的最小 RU/s。对于自动缩放选项,确实应该是
storage in GB * 10 RU/s
。在计算成本时,您应该考虑到您的 RU 范围为 1000-10,000 RU,并且根据您的最大 RU 使用量按小时计算。因此,如果您估计平均约为 4000 RU,您将支付最大吞吐量的 40%。
我建议使用 Cosmos 计算器来估计大小以及 CRUD 操作的总 RU 使用量的估计,但出于成本考虑,最好使用 Azure 计算器。它更新了并且还考虑了新功能。例如,自动缩放每 RU 的成本高于手动吞吐量,这在 Cosmos 计算器中没有显示。
然后还有一些需要考虑的因素,例如您可以设置的最小 RU(基于您找到的公式)以及跨分区拆分的 RU,如果您有“热”分区(分区),这一点尤其重要比其他人做更多的工作)。
最好的指标就是尝试并观察成本和指标。