Resolva problemas com a quota de operações simultâneas do Compute Engine

Este documento descreve como resolver problemas de limites de operações simultâneas no Compute Engine causados por erros rateLimitExceeded.

Para ajudar a identificar a causa de um erro rateLimitExceeded, siga estes passos de resolução de problemas:

  1. Na Google Cloud consola, aceda à página Explorador de registos:

    Aceda ao Explorador de registos

    Se usar a barra de pesquisa para encontrar esta página, selecione o resultado cuja legenda é Registo.

  2. Para filtrar os registos de erros gerados pela API Compute Engine, introduza a seguinte consulta de registo no editor de consultas.

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

    Os registos de erros filtrados devem ser semelhantes aos seguintes:

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

    Os detalhes do erro contêm os seguintes valores:

    • METHOD_NAME: o nome do método ou da operação do serviço. Para chamadas API, este nome deve ser o nome do método API.

    • LOCATION: a localização do recurso. Pode ser uma região, uma zona ou global. Por exemplo, as entradas currentLocations: "us-central1"(Regional) ou currentLocations: "us-central1-a" indicam que a região é "us-central1" ou currentLocations: "global".

  3. Identifique o valor methodName associado no registo de erros. Este nome representa o método da API para o qual o limite da taxa foi excedido, por exemplo: v1.compute.instances.stop.

  4. Identifique a localização relevante nos registos de auditoria.

  5. Verifique as Concurrent operations per project quotas e os limites.

    Consola

    1. Na Google Cloud consola, aceda à página Quotas.

      Aceder a Quotas

      A página Quotas apresenta a utilização e os limites de quotas do seu projeto. Por predefinição, a lista é ordenada para mostrar primeiro as quotas mais usadas, o que ajuda a ver os limites que correm o risco de serem excedidos.

    2. Para filtrar a lista e ver a utilização e o limite de uma quota específica, selecione Quota ou Métrica no campo Filtro.

      Por exemplo, selecione a quota pelo nome Concurrent global operations per project operation type ou selecione Service: Compute Engine API, type: System Limit e uma palavra-chave concurrent para listar todas as quotas de operações simultâneas. A filtragem apresenta uma lista de quotas simultâneas. Nesta lista, pode pesquisar a quota afetada. Para filtrar a quota de uma operação específica, adicione Dimensions à consulta de filtro e selecione operation_type (apresentado como methodName nos registos de auditoria).

      Por exemplo, selecione instances_stop para ver a utilização e o limite da quota para a operação instances.stop.

      Para filtrar a quota de uma região específica, adicione Dimensões à consulta de filtro e selecione a região (apresentada como currentLocations nos registos de auditoria).

      Por exemplo, selecione us-central1 para ver a utilização e o limite da quota para a região us-central1.

      Os filtros region e operation_type podem ser usados em conjunto para ver a utilização e o limite de quota de uma operação específica numa região específica.

    gcloud

    Pode usar a CLI do Google Cloud para ver a utilização e o limite das quotas de operações concorrentes.

    Para usar esta abordagem, certifique-se de que instalou o componente de comandos alfa. Se estiver a usar o Cloud Shell para interagir com o Google Cloud, a CLI do Google Cloud é instalada automaticamente.

    Para ver uma quota de operações, use o seguinte comando:

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

    Substitua PROJECT_ID pelo ID do projeto para o qual quer ver a quota.

    Geralmente, estas quotas são agrupadas em duas categorias:

    • Global ou regional
    • Por projeto ou por projeto por tipo de operação

    Para mais informações, consulte o artigo Grupos de quotas de operações simultâneas.

  6. Verifique o gráfico de utilização da quota. Se a utilização estiver perto ou acima do limite da quota durante o período dos registos de erros, significa que o limite da quota ou do sistema foi excedido.

    Para ver gráficos que mostram a utilização atual e máxima, aceda à quota e, de seguida, clique em Monitorização. Pode ter de deslocar a página para a direita até ao fim da tabela.

    O gráfico de monitorização confirma a causa do erro rateLimitExceeded, com a quota/limite específico. Se os valores atuais estiverem acima dos valores limite, significa que o limite do sistema foi excedido. Uma vez que os limites do sistema não podem ser modificados, recomendamos as seguintes práticas recomendadas para reduzir o número de operações simultâneas.

    Seguem-se algumas das práticas recomendadas: