你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

限制 Azure Cosmos DB 帐户上预配的总吞吐量

适用对象: NoSQL MongoDB Cassandra Gremlin

预配的吞吐量模式下使用 Azure Cosmos DB 帐户时,大部分成本通常来自于你在帐户中预配的吞吐量。 具体而言,这些成本直接受到以下因素的影响:

  • 具有共享吞吐量的数据库的数目。
  • 具有专用吞吐量的容器的数目。
  • 每个资源上预配的吞吐量。
  • 帐户可用的区域的数目。

跟踪已在帐户中预配的总吞吐量可能会很困难,尤其是在开始使用 Azure Cosmos DB 时。 这可能会导致意外的费用,因为此数量最终超出了你不希望超出的特定预算。 为了帮助你更好地控制成本,Azure Cosmos DB 允许你限制帐户中预配的总吞吐量。

注意

此功能在无服务器帐户上不可用。

将限制设置为帐户的总吞吐量后,会阻止导致超出此限制的任何以下操作,并且这些操作将显式失败:

  • 创建具有共享吞吐量的新数据库。
  • 创建具有专用吞吐量的容器。
  • 增加在标准(手动)模式下配置的资源的预配吞吐量。
  • 增加在自动缩放模式下配置的资源的最大预配吞吐量。
  • 将新区域添加到帐户。

注意

对于在自动缩放模式下配置的资源,它是在资源上配置的最大吞吐量,可计入帐户的总吞吐量。

重要

在你的帐户上启用总吞吐量限制后,必须在创建新容器时传递显式吞吐量值。 如果尝试创建没有显式吞吐量的容器,则当前会遇到错误。

从 Azure 门户设置总吞吐量限制

新帐户

从门户创建新的 Azure Cosmos DB 帐户时,可以选择限制帐户的总吞吐量:

显示如何在创建新帐户时限制总帐户吞吐量的 Azure 门户的屏幕截图

选中此选项会限制帐户的总吞吐量,对于免费层级帐户,限制为 1,000 RU/秒。对于常规非免费层级帐户,则为 4,000 RU 秒。 你可以在创建帐户后更改此值。

现有帐户

在 Azure 门户中,导航到 Azure Cosmos DB 帐户,然后在左侧菜单中选择“成本管理”。

显示如何更新现有帐户的总帐户吞吐量的 Azure 门户的屏幕截图

此部分显示在帐户中预配的总吞吐量的摘要,并允许你配置总吞吐量限制。 有以下三个可用选项:

  • 将帐户的总预配吞吐量限制为免费层折扣中包含的量。 此选项仅适用于免费层帐户,并将帐户的总吞吐量限制为 1,000 RU/s。 选中此选项时,可以确保不会对预配的吞吐量产生任何费用。
  • 允许将帐户的总吞吐量预配为自定义量。 此选项允许你输入不希望超过的预配总吞吐量。 对应于输入的每月成本估计值都显示为参考。

    注意

    此自定义限制不能低于当前在帐户中预配的总吞吐量。

  • 无限制,允许将帐户的总吞吐量预配为任何量。 此选项将禁用限制。

以编程方式设置总吞吐量限制

使用 Azure 资源管理器模板

使用 Azure 资源管理器创建或更新 Azure Cosmos DB 帐户时,可以通过设置 properties.capacity.totalThroughputLimit 属性来配置总吞吐量限制:

{
  "location": "West US",
  "kind": "DocumentDB",
  "properties": {
    "locations": [
      {
        "locationName": "West US",
        "failoverPriority": 0,
        "isZoneRedundant": false
      }
    ],
    "databaseAccountOfferType": "Standard",
    "capacity": {
        "totalThroughputLimit": 2000
    }
  }
}

将此属性设置为 -1 以禁用限制。

常见问题

在哪些情况下,预配的总吞吐量可能会超出限制?

Azure Cosmos DB 强制存储的数据最小吞吐量为每 GB 1 RU/秒。 如果在吞吐量已达到最小值时引入数据,则资源上预配的吞吐量将自动增加,以满足每 GB 1 RU/秒的要求。 在这种情况下,仅在此情况下,预配的总吞吐量才可能会超出设置的限制。

后续步骤