限制 Azure Cosmos DB 帐户上预配的总吞吐量
适用对象: NoSQL MongoDB Cassandra Gremlin 表
在预配的吞吐量模式下使用 Azure Cosmos DB 帐户时,大部分成本通常来自于你在帐户中预配的吞吐量。 具体而言,这些成本直接受到以下因素的影响:
- 具有共享吞吐量的数据库的数目。
- 具有专用吞吐量的容器的数目。
- 每个资源上预配的吞吐量。
- 帐户可用的区域的数目。
跟踪已在帐户中预配的总吞吐量可能会很困难,尤其是在开始使用 Azure Cosmos DB 时。 这可能会导致意外的费用,因为此数量最终超出了你不希望超出的特定预算。 为了帮助你更好地控制成本,Azure Cosmos DB 允许你限制帐户中预配的总吞吐量。
注意
此功能在无服务器帐户上不可用。
将限制设置为帐户的总吞吐量后,会阻止导致超出此限制的任何以下操作,并且这些操作将显式失败:
- 创建具有共享吞吐量的新数据库。
- 创建具有专用吞吐量的容器。
- 增加在标准(手动)模式下配置的资源的预配吞吐量。
- 增加在自动缩放模式下配置的资源的最大预配吞吐量。
- 将新区域添加到帐户。
注意
对于在自动缩放模式下配置的资源,它是在资源上配置的最大吞吐量,可计入帐户的总吞吐量。
重要
在你的帐户上启用总吞吐量限制后,必须在创建新容器时传递显式吞吐量值。 如果尝试创建没有显式吞吐量的容器,则当前会遇到错误。
从 Azure 门户设置总吞吐量限制
注意
虽然在使用门户创建 Azure Cosmos DB 帐户时,可以选择设置总吞吐量限制,但目前在 Azure 中国无法通过门户来这样做,只能通过 Bicep/ARM 访问此功能。
更重要的是,成本管理目前无法通过门户提供限制管理。
以编程方式设置总吞吐量限制
使用 Azure 资源管理器模板
使用 Azure 资源管理器创建或更新 Azure Cosmos DB 帐户时,可以通过设置 properties.capacity.totalThroughputLimit
属性来配置总吞吐量限制:
{
"location": "China North3",
"kind": "DocumentDB",
"properties": {
"locations": [
{
"locationName": "China North3",
"failoverPriority": 0,
"isZoneRedundant": false
}
],
"databaseAccountOfferType": "Standard",
"capacity": {
"totalThroughputLimit": 2000
}
}
}
将此属性设置为 -1
以禁用限制。
常见问题
在哪些情况下,预配的总吞吐量可能会超出限制?
Azure Cosmos DB 强制存储的数据最小吞吐量为每 GB 1 RU/秒。 如果在吞吐量已达到最小值时引入数据,则资源上预配的吞吐量将自动增加,以满足每 GB 1 RU/秒的要求。 在这种情况下,仅在此情况下,预配的总吞吐量才可能会超出设置的限制。