Kontingente für gleichzeitige Vorgänge in der Compute Engine


In diesem Dokument werden die Kontingente für gleichzeitige Vorgänge für Compute Engine beschrieben.

Kontingente für gleichzeitige Vorgänge

Kontingente für gleichzeitige Vorgänge definieren die Anzahl der laufenden oder gleichzeitigen Vorgänge, die zu einem beliebigen Zeitpunkt auftreten können. Jede API-Anfrage, die eine Compute Engine-Ressource erstellt, ändert oder löscht, unterliegt einer Gleichzeitigkeitsüberprüfung, um sicherzustellen, dass die Gesamtzahl der laufenden Vorgänge zu keinem Zeitpunkt das für diesen Vorgang angegebene Limit überschreitet.

Fehler „Limit für gleichzeitige Vorgänge überschritten”

Wenn Ihr Projekt das Limit für gleichzeitige Vorgänge für einen laufenden Vorgang überschreitet, wird der Fehler 403 mit dem Grund rateLimitExceeded angezeigt.

Die API-Antwort auf den Fehler sieht in etwa so aus:

    "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"
            }
          ]
        },
      ...
      ... 

Die Fehlerdetails enthalten die folgenden Werte:

  • PROJECT_ID: die ID des Projekts, in dem das Kontingent das Limit überschreitet.

  • QUOTA_METRIC: Der Messwert für das gleichzeitige Kontingent, der das Limit überschreitet. Mögliche Werte:

    • compute.googleapis.com/global_concurrent_operations
    • compute.googleapis.com/regional_concurrent_operations
  • QUOTA_LIMIT: der Grenzwertname des gleichzeitigen Kontingents. Mögliche Werte:

    • GlobalConcurrentOperationsPerProject
    • GlobalConcurrentOperationsPerProjectOperationType
    • RegionalConcurrentOperationsPerProject
    • RegionalConcurrentOperationsPerProjectOperationType
  • OPERATION_TYPE: den globalen oder regionalen Vorgang, für den das Kontingent das Limit überschreitet. Eine Liste der Vorgänge finden Sie unter Kontingentgruppen für gleichzeitige Vorgänge.

  • Der Wert für location kann einer der folgenden sein:

    • global: Gibt an, dass das Limit für das globale Vorgangskontingent überschritten wurde.
    • REGION: Gibt die Region an, in der das Limit für das Vorgangskontingent überschritten wurde.

Die detaillierten Fehlerprotokolle werden nur über die API-Antwort zurückgegeben. Fehler im Log-Explorer sieht in etwa so aus:

   "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"
    },
    ...
    ... 

Die METHOD_NAME im Fehler steht für die API-Methode, für die das Ratelimit überschritten wurde. Beispiel: v1.compute.instances.stop.

Kontingentgruppen für gleichzeitige Vorgänge

In diesem Abschnitt werden die Limits für verschiedene laufende oder gleichzeitige Compute Engine-Vorgänge beschrieben.

Kontingente für globale Vorgänge

Gleichzeitige globale Vorgänge verbrauchen ein globales Limit, das für Vorgangstypen pro Projekt angegeben ist. In der folgenden Tabelle sind die globalen Kontingente für laufende Vorgänge und die entsprechenden Messwerte aufgeführt.

Sie können das Kontingent für globale Vorgänge mit der Google Cloud Console, der Google Cloud CLI und der Service Usage API aufrufen. Weitere Informationen finden Sie unter Kontingente und Limits für gleichzeitige Vorgänge aufrufen.

Kontingentname
Beschreibung
Messwertname Methoden, die dieses Kontingent verbrauchen
Concurrent global operations per project
Beschränkt die Gesamtzahl der gleichzeitigen globalen Vorgänge für ein Projekt.

Rufen Sie dieses Kontingent in der Google Cloud Console auf:

compute.googleapis.com/global_concurrent_operations

Alle globalen Methoden

Die HTTP-Anfrage-URL enthält für diese Methoden global. Zum Beispiel die Methode networks.insert:
POST /compute/v1/projects/{project}/global/networks

Concurrent global operations per project operation type
Begrenzt die Anzahl gleichzeitiger Vorgänge pro Projekt und Vorgangstyp.

Rufen Sie dieses Kontingent in der Google Cloud Console auf:

compute.googleapis.com/global_concurrent_operations

Alle globalen Methoden

Das Standardkontingent für gleichzeitige Vorgänge beträgt 500 laufende Vorgänge pro Projekt, mit Ausnahme der folgenden Methoden, die unterschiedliche Standardlimits haben:

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

Kontingente für regionale Vorgänge

Gleichzeitige regionale Vorgänge verbrauchen ein regionales Limit, das für Vorgangstypen pro Projekt in einer bestimmten Region angegeben ist.

In der folgenden Tabelle sind die regionalen Kontingente für laufende Vorgänge und die entsprechenden Messwerte aufgeführt.

Sie können das Kontingent für regionale Vorgänge mit der Google Cloud Console, der Google Cloud CLI und der Service Usage API aufrufen. Weitere Informationen finden Sie unter Kontingente und Limits für gleichzeitige Vorgänge aufrufen.

Kontingentname
Beschreibung
Messwertname Methoden, die dieses Kontingent verbrauchen
Concurrent regional operations per project
Beschränkt die Gesamtzahl der gleichzeitigen regionalen Vorgänge für ein Projekt.

Rufen Sie dieses Kontingent in der Google Cloud Console auf:

compute.googleapis.com/regional_concurrent_operations

Alle regionalen Methoden

Die HTTP-Anfrage-URL enthält für diese Methoden regions oder zones.
Beispiel: Methode instances.insert:
POST /compute/v1/projects/{project}/zones/{zone}/instances

Concurrent regional operations per project operation type
Begrenzt die Anzahl gleichzeitiger regionaler Vorgänge pro Projekt und Vorgangstyp.

Rufen Sie dieses Kontingent in der Google Cloud Console auf:

compute.googleapis.com/regional_concurrent_operations

Alle regionalen Methoden

Das Standardkontingent für gleichzeitige Vorgänge beträgt 500 laufende Vorgänge pro Projekt und Region, mit Ausnahme der folgenden Methoden, die unterschiedliche Standardlimits haben:

addresses.move

disks.insert

instances.delete

instances.insert

instances.simulateMaintenanceEvent

networkEndpointGroups.attachNetworkEndpoints

networkEndpointGroups.detachNetworkEndpoints

publicDelegatedPrefixes.delete

publicDelegatedPrefixes.insert

Kontingente und Limits für gleichzeitige Vorgänge aufrufen

So rufen Sie die Kontingentnutzung und -limits in einem Projekt auf:

Console

  1. Öffnen Sie in der Google Cloud Console die Seite Kontingente.

    Kontingente aufrufen

    Auf der Seite Kontingente sind alle Kontingentnutzungen und -limits für Ihr Projekt aufgelistet. Standardmäßig werden die am häufigsten verwendeten Kontingente in der Liste sortiert. So können Sie leicht feststellen, bei welchen Limits die Gefahr besteht, dass sie überschritten werden.

  2. Wenn Sie die Liste filtern und die Nutzung und das Limit für ein bestimmtes Kontingent aufrufen möchten, wählen Sie im Feld Filter die Option Kontingent oder Messwert aus.

    Wählen Sie beispielsweise das Kontingent Concurrent global operations per project operation type aus, um die Kontingentnutzung für globale Methoden nach Vorgangstyp aufzurufen.

    Wenn Sie das Kontingent für einen bestimmten Vorgang filtern möchten, fügen Sie der Filterabfrage Dimensionen hinzu und wählen Sie operation_type aus. Wählen Sie beispielsweise firewalls_insert aus, um die Kontingentnutzung und das Limit für den Vorgang firewalls.insert aufzurufen.

gcloud

Mit der Google Cloud CLI können Sie die Nutzung und das Limit für Kontingente für gleichzeitige Vorgänge aufrufen.

Für diesen Ansatz müssen Sie die Komponente Alphabefehle installiert haben. Wenn Sie Cloud Shell für die Interaktion mit Google Cloud verwenden, wird das Google Cloud CLI für Sie installiert.

Verwenden Sie den folgenden Befehl, um das Kontingent aufzurufen:

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

Ersetzen Sie PROJECT_ID durch die ID des Projekts, für das Sie das Kontingent aufrufen möchten.

Best Practices

In der folgenden Checkliste sind die Best Practices zur Reduzierung von Fehlern bei unzureichenden Limits für gleichzeitige Vorgänge zusammengefasst:

Nächste Schritte