Por padrão, os serviços do Cloud Run têm um máximo de 100 instâncias. Você pode aumentar esse número até o máximo permitido para sua região. O limite máximo de cada região também é afetado pela configuração de CPU e memória do serviço do Cloud Run. Especificamente, o número máximo de instâncias disponíveis para o serviço é o mínimo de cada um dos seguintes:
- referência de cota regional dividida pelo múltiplo solicitado de 1 CPU
- referência de cota regional dividida pelo múltiplo solicitado de 2 GB de memória
Por exemplo, uma cota de referência de 1.000 instâncias com 4 GB de memória ou 2 CPUs receberá um limite efetivo de 500.
Você pode conferir a cota de referência por região na página de cotas do console.
Como aumentar a cota regional de referência
Se você precisar de um número máximo maior de instâncias na região em que o serviço do Cloud Run está implantado, solicite um aumento de cota.
Práticas recomendadas para definir o número máximo de instâncias
A seção a seguir descreve as práticas recomendadas para configurar os limites máximos de instâncias para seus serviços.
Valor máximo de instância ideal para serviços orientados a eventos
Serviços orientados a eventos, como funções, podem ter picos de tráfego esporádicos com base nos eventos recebidos. Para determinar um valor de instância máximo ideal para esses serviços, você precisa considerar fatores como tempo de invocação de serviço, invocação média esperada, frequência de invocação de pico e tolerância a falhas de invocação.
Uma boa regra prática é começar com um valor máximo de instâncias de três, monitorar falhas de invocação e aumentar esse valor, conforme necessário.
Processar solicitações quando todas as instâncias estiverem ocupadas
Em circunstâncias normais, o serviço é escalonado criando novas instâncias para lidar com a carga de tráfego de entrada. No entanto, quando um limite máximo de instâncias estiver definido, será possível encontrar um cenário em que haja instâncias insuficientes para atender a carga de tráfego de entrada.
Nesse cenário, o Cloud Run tenta exibir a uma nova solicitação de entrada por até 30 segundos:
- Se uma instância concluir o processamento da solicitação durante esse período, ela poderá começar a processar a nova solicitação de entrada.
- Se nenhuma instância se tornar disponível, a solicitação falhará.
O Cloud Run salva automaticamente eventos destinados a serviços orientados a eventos até que a capacidade esteja disponível.
Limites máximos de instâncias que excedem a capacidade de escalonamento do Cloud Run
Ao especificar um limite máximo de instâncias, você está especificando um limite superior. Definir um limite grande não significa que o serviço será escalonar verticalmente para o número especificado de instâncias. Isso significa apenas que o número de instâncias que coexistem a qualquer momento não deve exceder o limite.
Além disso, definir um limite máximo de instâncias pode afetar as estratégias de escalonamento que o Cloud Run usa para atender à demanda de tráfego. Em geral, o Cloud Run prioriza o limite especificado em vez de aumentar e potencialmente exceder o limite.
Processar picos de tráfego
Em alguns casos, como surtos de tráfego acelerado, o Cloud Run pode criar, por um curto período, mais instâncias do que o limite máximo especificado de instâncias. Se o serviço não aceitar esse comportamento temporário, considere incluir uma margem de segurança e definir um valor máximo de instâncias mais baixo do que o serviço pode tolerar.
Implantações
Quando você implanta uma nova revisão, o Cloud Run migra o tráfego da revisão anterior para a nova. Como os limites máximos de instâncias são definidos para cada revisão de forma independente, é possível exceder temporariamente o limite especificado durante o período após a implantação.
Por exemplo, um serviço pode ter um limite máximo de 5 instâncias. Em circunstâncias normais, o serviço é escalonado até 5 instâncias para lidar com as solicitações. Quando você implanta uma nova revisão, ela tem seu próprio limite máximo de 5 instâncias.
As solicitações que já estão sendo processadas pela revisão anterior não são interrompidas quando você implanta uma nova revisão. Em vez disso, essas solicitações continuam a progredir. As novas solicitações de entrada serão tratadas pela revisão recém-implantada do serviço.
Assim, o serviço no exemplo anterior pode ter até 10 instâncias no total (cinco para cada revisão) durante o período após a implantação da nova revisão. A quantidade de tempo necessária para que as instâncias da revisão anterior terminem depende do tempo necessário para que essas instâncias concluam o processamento de qualquer solicitação ativa. Esse é um fator adicional a ser levado em conta ao selecionar um limite de instâncias máximas apropriado.