为何RU消耗达100%?预配置吞吐量远低于自动缩放最大值
观测情况
- 自动缩放最大吞吐量(Autoscale max throughput):220k
- 当前预配置吞吐量(Provisioned throughput):153k
- RU消耗(RU consumption):已达100%
核心问题解答
1. 为什么预配置没到最大值,RU消耗却拉满了?自动缩放模式下RU消耗怎么算?
自动缩放模式里,RU消耗的计算基准是当前实际的预配置吞吐量,不是自动缩放的最大值。Cosmos DB的自动扩容不是实时触发的:默认要负载持续超过当前预配置的70%才会触发,而且扩容需要时间逐步完成。
如果负载突然冲高,或者持续占满当前预配置的吞吐量,但还没满足扩容的触发条件(比如持续时间不够),就会出现预配置没到上限,但RU消耗已经100%的情况。另外自动缩放是逐步扩容的,不会直接跳到最大值,中间阶段也会出现这种情况。
2. RU消耗能不能用来判断自动缩放最大值设置得是否合理?
单看RU消耗不行,但结合自动缩放的历史调整记录可以判断:
- 如果高负载时,预配置经常触碰到最大值,且RU持续100%,说明最大值设低了,顶不住峰值;
- 如果预配置从来没接近过最大值,长期维持在低位,说明最大值设高了,属于过度配置。
3. 自动缩放模式下怎么判断过度配置或配置不足?
配置不足的信号:
- 监控里频繁出现RU消耗100%,同时有大量429限流错误、请求超时;
- 预配置吞吐量经常摸到自动缩放的最大值,峰值时段没法继续扩容;
- 业务延迟明显上升,读写性能受影响。
过度配置的信号:
- 长期来看,预配置吞吐量的平均值远低于最大值,甚至从来没触发过扩容;
- 大部分时间RU消耗都在50%以下,没有明显的峰值负载需求;
- 成本过高,和实际业务负载不匹配。


内容的提问来源于stack exchange,提问作者LostInComputer
相关产品推荐
相关产品推荐

