azure - Cosmos DB - 为什么请求没有受到限制?
问题描述
我在 Azure 订阅中创建了一个“免费”Cosmos DB 帐户 (SQL API)。在该帐户中,我创建了一个具有共享吞吐量(400 RU/s)的数据库,并且该数据库有一个容器,该容器将利用数据库的吞吐量(数据库中只有一个容器)。
我现在正在尝试使用批处理在我的容器中插入一些项目。每个批次正好包含 100 个项目(每个项目小于 1K),我正在尝试创建 5000 个实体(即 50 个批次)。每个批次插入都在持续消耗780.95 RUs
。
考虑到配置的吞吐量只有 400 RU/s,我预计我的一些请求会受到限制,但令我惊讶的是,我的所有请求都成功了。我还监控了所花费的总时间(端到端和服务器花费的时间),它们分别约为 30 秒和 3 秒。消耗的总吞吐量为 39047.50。
我还检查了监控以确保服务没有限制任何请求(以防 SDK 正在重试受限制的请求),但也没有发现任何受限制的请求。
这是第 10 个请求的日志(其余请求或多或少相同):
Overall time taken (end-to-end): 30605 ms
Overall time taken (request): 2733.6059999999993 ms
Overall RUs consumed: 39047.49999999999
===========================================
Batch # Status Code Request Charge Time (E2E) (ms) Time (Request) (ms)
001 OK 780.95 7018 56.262
002 OK 780.95 531 53.618
003 OK 780.95 474 51.65
004 OK 780.95 504 54.668
005 OK 780.95 488 56.367
006 OK 780.95 487 50.501
007 OK 780.95 513 54.459
008 OK 780.95 486 55.089
009 OK 780.95 483 65.06
我很想知道为什么我的请求没有受到限制?
我读过RU debt
(这里和这里)但是数学并没有加起来。如果我认为总时间段为 30 秒,那么我可用的 RU 为 12000(400 RU/sx 30 秒),如果我认为总时间段为 3 秒,那么我可用的 RU 为 1200(400 RU/sx 3 秒)。这两个数字都比我的应用程序消耗的 39000 RU 少得多,我的请求应该受到限制,但没有一个请求受到限制。
对此的任何见解都将受到高度赞赏。
解决方案
这不是免费套餐的工作方式。它只是免费使用前 400 RU/s。
这是相当普遍的误解。我们正在开发吞吐量上限功能,该功能将限制免费层级和其他帐户。现在你需要监控。
推荐阅读
- database - 微服务架构数据库
- vlang - 每行可以有多个结构成员吗?
- python-3.x - Jupyter Notebook 在访问本地数据集时会引发用户警告
- python - 旅行推销员变种
- php - PHP 将“粗略频率”sox stat 从 exec 放入变量
- r - R qplot 错误消息:形状调色板最多可以处理 6 个离散值,因为超过 6 个变得难以区分
- python - 如何修复我的滑块?它没有按预期工作
- python - 在文本文件的行中查找位置
- javascript - JSON / JavaScript - 找到匹配的值,将它们变成键并创建新的合并对象
- javascript - 使用 JS 通过 API 发送多级表单数据