Compute Engine 并发操作配额


本文档介绍了 Compute Engine 的并发操作配额。

并发操作配额

并发操作配额用于定义在任意时间点可以发生的正在运行或并发操作的数量。任何创建、修改或删除 Compute Engine 资源的 API 请求都会受到并发操作限制检查,以确保任何时间点正在进行的操作总数不超过为该操作指定的限制。

“已超出并发操作限制”错误

如果您的项目超出任何运行中操作的并发操作限制,则会收到 403 错误,原因为 rateLimitExceeded

此错误的 API 响应类似于以下内容:

    "error": {
      "code": 403,
      "message": "Rate Limit Exceeded",
      "errors": [
        {
          "message": "Rate Limit Exceeded",
          "domain": "usageLimits",
          "reason": "rateLimitExceeded",
        ...
        ...
        }
      ],
      "details": [
        {
          "@type": "type.googleapis.com/google.rpc.ErrorInfo",
          "reason": "CONCURRENT_OPERATIONS_QUOTA_EXCEEDED",
          "domain": "compute.googleapis.com",
          "metadatas": {
            "containerType": "PROJECT",
            "containerId": "PROJECT_ID",
            "quotaMetric": "QUOTA_METRIC",
            "quotaLimit": "QUOTA_LIMIT",
            "operationType": "OPERATION_TYPE",
            "location": "global | REGION"
          }
        },
        {
          "@type": "type.googleapis.com/google.rpc.Help",
          "links": [
            {
              "description": "Concurrent operations quota documentation.",
              "url": "https://cloud.google.com/compute/operations-quota#concurrent_operation_limits"
            }
          ]
        },
      ...
      ... 

错误详情包含以下值:

  • PROJECT_ID:配额超出限制的项目的 ID。

  • QUOTA_METRIC:超过限制的并发配额的指标。可以是下列选项之一:

    • compute.googleapis.com/global_concurrent_operations
    • compute.googleapis.com/regional_concurrent_operations
  • QUOTA_LIMIT:并发配额的限制名称。 可以是下列选项之一:

    • GlobalConcurrentOperationsPerProject
    • GlobalConcurrentOperationsPerProjectOperationType
    • RegionalConcurrentOperationsPerProject
    • RegionalConcurrentOperationsPerProjectOperationType
  • OPERATION_TYPE:配额超出的全球或区域操作。如需查看操作列表,请参阅并发操作配额组

  • location 可以是下列选项之一:

    • global:指定已超出全球操作配额的限制
    • REGION:指定操作配额超出限制的区域

详细的错误日志仅通过 API 响应返回。日志浏览器中的错误类似于以下内容:

   "protoPayload":{
    "@type": "type.googleapis.com/google.cloud.audit.AuditLog",
    "status": {
      "message": "Rate Limit Exceeded"
    }
    "serviceName": "compute.googleapis.com",
    "methodName": "METHOD_NAME",
    ...
    ...
    "response": {
      "error": {
        "message": "Rate Limit Exceeded",
        "code": 403,
        "errors": [
          {
            "message": "Rate Limit Exceeded",
            "reason": "rateLimitExceeded",
            "domain": "usageLimits"
          }
        ]
      },
      "@type": "type.googleapis.com/error"
    },
    ...
    ... 

错误中的 METHOD_NAME 表示超出速率限制的 API 方法。例如 v1.compute.instances.stop

并发操作配额组数

本部分介绍各种 Compute Engine 运行中或并发操作的限制。

全球操作配额

并发全球操作会使用为每个项目的操作类型指定的全球性限制。下表列出了正在运行的操作的全球配额及相应的指标。

您可以使用 Google Cloud 控制台、Google Cloud CLI 和 Service Usage API 查看全球操作的配额。如需了解详情,请参阅查看并发操作配额和限制

配额名称
说明
指标名称 消耗此配额的方法
Concurrent global operations per project
限制项目的并发全局操作总数。

在 Google Cloud 控制台中查看此配额

compute.googleapis.com/global_concurrent_operations

所有全局方法

在这些方法中,HTTP 请求网址包含 global。例如,networks.insert 方法:
POST /compute/v1/projects/{project}/global/networks

Concurrent global operations per project operation type
限制每个项目每种类型的并发操作数。

在 Google Cloud 控制台中查看此配额

compute.googleapis.com/global_concurrent_operations

所有全局方法

默认并发操作配额为每个项目 500 个正在运行的操作,但以下方法除外,这些方法的默认限制不同:

globaladdresses.move

firewalls.delete

firewalls.insert

images.delete

images.deprecate

images.insert

images.patch

images.setLabels

images.setIamPolicy

licenses.insert

machineimages.delete

machineimages.insert

networks.addPeering

networks.removePeering

networks.updatePeering

projects.setCommonInstaneMetadata

publicAdvertisedPrefixes.delete

publicAdvertisedPrefixes.insert

routes.delete

routes.insert

securityPolicies.patchRule

snapshots.delete

snapshots.insert

snapshots.setLabels

snapshots.setIamPolicy

snapshotSettings.patch

区域操作配额

并发区域操作使用为给定区域中每个项目的操作类型指定的区域限制。

下表列出了运行中操作的区域配额和相应指标。

您可以使用 Google Cloud 控制台、Google Cloud CLI 和 Service Usage API 查看区域操作的配额。如需了解详情,请参阅查看并发操作配额和限制

配额名称
说明
指标名称 消耗此配额的方法
Concurrent regional operations per project
限制项目的并发全球操作总数。

在 Google Cloud 控制台中查看此配额

compute.googleapis.com/regional_concurrent_operations

所有区域方法。

HTTP 请求网址包含这些方法的 regionszones
例如,instances.insert 方法:
POST /compute/v1/projects/{project}/zones/{zone}/instances

Concurrent regional operations per project operation type
限制每个项目每种操作类型的并发区域操作数。

在 Google Cloud 控制台中查看此配额

compute.googleapis.com/regional_concurrent_operations

所有区域方法。

默认并发操作配额是每个区域每个项目 500 个正在运行的操作,但以下方法除外,它们具有不同的默认限制:

addresses.move

disks.insert

instances.delete

instances.insert

instances.simulateMaintenanceEvent

networkEndpointGroups.attachNetworkEndpoints

networkEndpointGroups.detachNetworkEndpoints

publicDelegatedPrefixes.delete

publicDelegatedPrefixes.insert

查看并发操作配额和限制

如需查看项目中的配额用量和限制,请执行以下操作:

控制台

  1. 在 Google Cloud 控制台中,转到配额页面。

    转到“配额”

    配额页面列出了项目的所有配额用量和限制。 默认情况下,列表会将您用量最高的配额显示在最前面,便于您发现哪些资源用量有超出限制的风险。

  2. 如需过滤列表并查看任何特定配额的用量和限制,请在过滤条件字段中选择配额指标

    例如,选择配额 Concurrent global operations per project operation type 可查看每种操作类型的全局方法的配额用量。

    如需过滤特定操作的配额,请将维度添加到过滤条件查询,然后选择 operation_type。例如,选择 firewalls_insert 可查看 firewalls.insert 操作的配额用量和限制。

gcloud

您可以使用 Google Cloud CLI 查看并发操作配额的用量和限制。

如需使用此方法,请确保您已安装 Alpha 版命令组件。如果您使用 Cloud Shell 与 Google Cloud 进行交互,则系统会为您安装 Google Cloud CLI。

如需查看配额,请使用以下命令:

gcloud alpha services quota list \
    --service=compute.googleapis.com \
    --consumer=projects/PROJECT_ID

PROJECT_ID 替换为您要查看其配额的项目的 ID。

最佳做法

以下核对清单总结了减少并发操作限制不足错误的最佳实践:

后续步骤