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:
-
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.
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 entradascurrentLocations: "us-central1"
(regional) oucurrentLocations: "us-central1-a"
indicam que a região é"us-central1"
oucurrentLocations: "global"
.
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
.Identifique o local relevante nos registros de auditoria.
Verifique as cotas e os limites do
Concurrent operations per project
.Console
No console do Google Cloud, acesse a página 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.
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 selecioneService: Compute Engine API
,type: System Limit
e uma palavra-chaveconcurrent
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çãoinstances.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ãous-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.
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:
- Aguardar operações serem concluídas
- Conte com códigos de erro, não mensagens de erro
Minimize novas tentativas do lado do cliente para preservar os limites da taxa de API
Qualquer um dos métodos a seguir pode ser usado para minimizar as novas tentativas: