Risolvi i problemi relativi alla quota di operazioni simultanee di Compute Engine


Questo documento descrive come risolvere i problemi relativi ai limiti di operazioni simultanee in Compute Engine causati da errori rateLimitExceeded.

Per identificare la causa di un errore rateLimitExceeded, segui questi passaggi per la risoluzione dei problemi:

  1. Nella console Google Cloud , vai alla pagina Esplora log:

    Vai a Esplora log

    Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Logging.

  2. Per filtrare i log degli errori generati dall'API Compute Engine, inserisci la seguente query di logging nell'editor di query.

    log_id("cloudaudit.googleapis.com/activity")
    protoPayload.serviceName="compute.googleapis.com"
    protoPayload.response.error.code=403
    protoPayload.status.message="Rate Limit Exceeded"
    

    I log degli errori filtrati dovrebbero avere un aspetto simile al seguente:

    "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"
    },
    "resourceLocation": {
      "currentLocations": [
        "LOCATION"
      ]
    },
    ...
    ... 

    I dettagli dell'errore contengono i seguenti valori:

    • METHOD_NAME: il nome del metodo o dell'operazione del servizio. Per le chiamate API, questo nome deve corrispondere a quello del metodo API.

    • LOCATION: la posizione della risorsa. Può essere una regione, una zona o una risorsa globale. Ad esempio, le voci currentLocations: "us-central1" (regionale) o currentLocations: "us-central1-a" indicano che la regione è "us-central1" o currentLocations: "global".

  3. Identifica il valore methodName associato dal log degli errori. Questo nome rappresenta il metodo API per il quale è stata superata la limitazione di frequenza, ad esempio: v1.compute.instances.stop.

  4. Identifica la posizione pertinente negli audit log.

  5. Controlla le quote e i limiti di Concurrent operations per project.

    Console

    1. Nella console Google Cloud , vai alla pagina Quote.

      Vai a Quote

      La pagina Quote elenca gli utilizzi e i limiti delle quote per il progetto. Per impostazione predefinita, l'elenco è ordinato in modo da mostrare innanzitutto le quote più utilizzate, permettendoti di individuare quelle a rischio di superamento.

    2. Per filtrare l'elenco e visualizzare l'utilizzo e il limite di una quota specifica, seleziona Quota o Metrica nel campo Filtro.

      Ad esempio, seleziona la quota per il nome Concurrent global operations per project operation type o Service: Compute Engine API, type: System Limit e una parola chiave concurrent per elencare tutte le quote per le operazioni simultanee. Il filtro fornisce un elenco delle quote per le operazioni simultanee. In questo elenco puoi cercare una quota specifica. Per filtrare la quota per un'operazione specifica, aggiungi Dimensioni alla query di filtro e seleziona operation_type (o methodName negli audit log).

      Ad esempio, seleziona instances_stop per visualizzare l'utilizzo e il limite della quota per l'operazione instances.stop.

      Per filtrare la quota per una regione specifica, aggiungi Dimensioni alla query di filtro e seleziona la regione (indicata come currentLocations negli audit log).

      Ad esempio, seleziona us-central1 per visualizzare l'utilizzo e il limite della quota per la regione us-central1.

      I filtri Regione e operation_type possono essere utilizzati insieme per visualizzare l'utilizzo e il limite della quota per un'operazione specifica in una determinata regione.

    gcloud

    Puoi utilizzare Google Cloud CLI per visualizzare l'utilizzo e il limite delle quote per operazioni simultanee.

    Per utilizzare questo approccio, assicurati di aver installato il componente comandi alpha. Se utilizzi Cloud Shell per interagire con Google Cloud, troverai Google Cloud CLI già installato.

    Per visualizzare una quota per una determinata operazione, utilizza il seguente comando:

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

    Sostituisci PROJECT_ID con l'ID del progetto per il quale vuoi visualizzare la quota.

    In genere, queste quote sono raggruppate in due categorie:

    • Livello globale o di regione
    • Per progetto o per tipo di operazione per ciascun progetto

    Per ulteriori informazioni, consulta Gruppi di quote per le operazioni simultanee.

  6. Controlla il grafico di utilizzo della quota. Se l'utilizzo è vicino o superiore al limite della quota durante il periodo dei log degli errori, significa che questo limite o quello del sistema sono stati superati.

    Per visualizzare i grafici che mostrano l'utilizzo corrente e massimo, seleziona la quota e fai clic su Monitoraggio. Potrebbe essere necessario scorrere verso destra fino alla fine della tabella.

    Il grafico di monitoraggio confermerà la causa dell'errore rateLimitExceeded, con la quota/il limite specifico. Se i valori correnti sono superiori ai valori limite, significa che il limite di sistema è stato superato. Poiché i limiti di sistema non possono essere modificati, ti consigliamo le seguenti best practice per ridurre il numero di operazioni simultanee.

    Di seguito sono riportate alcune best practice: