Resolver problemas com a cota de operações simultâneas do Compute Engine


Este documento descreve como resolver problemas de limites de operação simultânea no Compute Engine causados por erros de rateLimitExceeded.

Para ajudar a identificar a causa de um erro rateLimitExceeded, siga estas etapas de solução de problemas:

  1. No console do Google Cloud, acesse a página Análise de registros:

    Acessar a Análise de registros

    Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo Logging.

  2. Para filtrar os registros de erro gerados pela API Compute Engine, insira a seguinte consulta de registro 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 registros de erros filtrados devem ser semelhantes a este:

    "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 da operação ou do método do serviço. Para chamadas de API, ele deve ser o nome do método da API.

    • LOCATION: o local do recurso. Pode ser uma região, 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 registro de erros. Esse nome representa o método da API em que o limite de taxa foi excedido, por exemplo: v1.compute.instances.stop.

  4. Identifique o local relevante nos registros de auditoria.

  5. Verifique as cotas e os limites do Concurrent operations per project.

    Console

    1. No console do Google Cloud, acesse a página Cotas.

      Acessar "Cotas"

      A página Cotas lista o uso e os limites de cota do projeto. A lista é classificada por padrão para mostrar primeiramente as cotas mais usadas, o que ajuda a ver os limites que correm risco de serem excedidos.

    2. Para filtrar a lista e conferir o uso e o limite de uma cota específica, selecione Cota ou Métrica no campo Filtro.

      Por exemplo, selecione a cota 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 cotas de operação simultânea. A filtragem fornece uma lista de cotas simultâneas. Nessa lista, você pode procurar a cota afetada. Para filtrar a cota de uma operação específica, adicione Dimensões à consulta de filtro e selecione operation_type (mostrado como methodName nos registros de auditoria).

      Por exemplo, selecione instances_stop para conferir o uso da cota e o limite da operação instances.stop.

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

      Por exemplo, selecione us-central1 para conferir o uso da cota e o limite da região us-central1.

      Os filtros region e operation_type podem ser usados juntos para conferir o uso e o limite de cota de uma operação específica em uma região específica.

    gcloud

    Use a CLI do Google Cloud para ver o uso e o limite de cotas de operação simultânea.

    Para usar essa abordagem, instale o componente de comandos alfa. Se você estiver usando o Cloud Shell para interagir com Google Cloud, a CLI do Google Cloud será instalada.

    Para conferir a cota de uma operação, use o seguinte comando:

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

    Substitua PROJECT_ID pelo ID do projeto com a cota que você quer visualizar.

    Essas cotas geralmente são agrupadas em duas categorias:

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

    Para mais informações, consulte Grupos de cota de operações simultâneas.

  6. Confira o gráfico de uso da cota. Se o uso estiver próximo ou acima do limite de cota durante o período dos registros de erro, isso significa que a cota ou o limite do sistema foi excedido.

    Para conferir gráficos que mostram o uso atual e o pico, acesse a cota e clique em Monitoramento. Talvez seja necessário rolar para a direita até o fim da tabela.

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

    Confira algumas práticas recomendadas: