Neste documento, descrevemos como resolver problemas com limites de operações simultâneas no Compute Engine causados por erros rateLimitExceeded
.
Para ajudar a identificar a causa de um erro de rateLimitExceeded
, siga estas etapas de solução de problemas:
-
No console 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 erros gerados pela API Compute Engine, insira a seguinte consulta de geração de registros 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, esse nome deve ser o nome do método da API.LOCATION
: o local 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 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 Google Cloud console, acesse a página Cotas.
A página Cotas lista o uso e os limites das cotas para seu 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 ver 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, é possível pesquisar a cota afetada. Para filtrar a cota de uma operação específica, adicione Dimensões à consulta de filtro e selecione o operation_type (mostrado como methodName nos registros de auditoria).Por exemplo, selecione
instances_stop
para ver 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 ver 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 da 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 Google Cloud CLI será instalada.
Para conferir uma cota de 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 da cota durante o período dos registros de erros, isso significa que a cota ou o limite do sistema foi excedido.
Para conferir gráficos que mostram o uso atual e o pico de uso, 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 limites, isso significa que o limite do sistema foi excedido. Como 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.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 de taxa da API
Qualquer um dos métodos a seguir pode ser usado para minimizar as novas tentativas: