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:
-
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.
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 entradascurrentLocations: "us-central1"
(Regional) oucurrentLocations: "us-central1-a"
indicam que a região é"us-central1"
oucurrentLocations: "global"
.
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
.Identifique a localização relevante nos registos de auditoria.
Verifique as
Concurrent operations per project
quotas e os limites.Consola
Na Google Cloud consola, aceda à página 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.
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 selecioneService: Compute Engine API
,type: System Limit
e uma palavra-chaveconcurrent
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çãoinstances.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ãous-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.
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:
- Aguarde a conclusão das operações
- Confie nos códigos de erro e não nas mensagens de erro
Minimize as novas tentativas do lado do cliente para preservar os limites de taxa da API
Pode usar qualquer um dos seguintes métodos para minimizar as novas tentativas: