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 控制台中,前往「Quotas」(配額) 頁面。

    前往配額頁面

    「配額」頁面會列出專案的所有配額用量和限制。根據預設,清單會依照您最常用的配額進行排序,方便您查看有超過上限之虞的項目。

  2. 如要篩選清單,並查看任何特定配額的使用量和限制,請在「Filter」欄位中選取「Quota」或「Metric」

    舉例來說,選取「配額」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。

最佳做法

下列檢查清單列出減少並行作業限制錯誤的最佳做法:

後續步驟