Sobre o escalonamento automático da instância de contêiner

No Cloud Run, cada revisão é escalonada automaticamente para o número de instâncias de contêiner necessárias para processar todas as solicitações recebidas. Por padrão, quando uma revisão não recebe nenhum tráfego, ela é reduzida para zero instância de contêiner. No entanto, é possível alterar esse padrão para especificar que uma instância seja mantida inativa ou "morna" usando a configuração de instâncias mínimas.

O número de instâncias programadas é afetado pela:

Em alguns casos, convém limitar o número total de instâncias de contêiner que podem ser iniciadas, por motivos de controle de custos ou para melhor compatibilidade com outros recursos usados pelo serviço. Por exemplo, seu serviço do Cloud Run pode interagir com um banco de dados que só pode lidar com um determinado número de conexões abertas simultâneas.

Sobre o máximo de instâncias de contêiner

É possível usar a configuração máxima de instâncias de contêiner para limitar o número total de instâncias que podem ser iniciadas em paralelo, conforme documentado em Como configurar um número máximo de instâncias de contêiner.

Como exceder o máximo de instâncias

Em circunstâncias normais, a revisão é ampliada criando novas instâncias para sustentar a carga do tráfego de entrada. No entanto, quando você define um limite máximo de instâncias, em alguns cenários, não há instâncias suficientes para atender a essa carga de tráfego. Nesse caso, as solicitações de entrada serão enfileiradas por até 60 segundos. Durante essa janela de 60 segundos, se uma instância concluir o processamento de solicitações, ela ficará disponível para processar solicitações enfileiradas. Se nenhuma instância estiver disponível durante a janela de 60 segundos, a solicitação falhará com um código de erro 429 no Cloud Run (totalmente gerenciado).

Garantias de escalonamento

O máximo de instâncias é um limite superior. Definir um limite alto não significa que a revisão será escalonada conforme o número especificado de instâncias de contêiner. Isso significa apenas que o número de instâncias de contêiner não pode exceder o limite em nenhum momento.

Picos de tráfego

Em alguns casos, como aumento rápido de tráfego, o Cloud Run pode, por um curto período, criar um pouco mais instâncias de contêiner do que o valor especificado de instâncias máximas. Se o serviço não puder tolerar esse comportamento temporário, considere uma margem de segurança e defina um valor de instâncias máximas mais baixo.

Implantações

Quando você implanta uma nova revisão, o Cloud Run migra gradualmente o tráfego da revisão antiga para a nova. Como os limites máximos de instâncias são definidos para cada revisão, é possível exceder temporariamente o limite especificado durante o período após a implantação.

Instâncias ociosas e como minimizar inicializações a frio

Você receberá a cobrança somente quando uma instância estiver lidando com uma solicitação, mas isso não significa que o Cloud Run encerrará imediatamente as instâncias após o processamento de todas as solicitações. Para minimizar o impacto das inicializações a frio, o Cloud Run pode manter algumas instâncias inativas. Essas instâncias estão prontas para lidar com solicitações em caso de um pico repentino de tráfego.

Por exemplo, quando uma instância de contêiner termina de processar solicitações, ela pode permanecer inativa por um período caso outra solicitação precise ser processada. Uma instância de contêiner inativo pode manter os recursos, como conexões de banco de dados abertas. No entanto, para o Cloud Run (totalmente gerenciado), a CPU não estará disponível.

Para manter as instâncias ociosas permanentemente disponíveis, use a configuração min-instance. Observe que o uso desse recurso gerará custos mesmo quando o serviço não estiver exibindo solicitações ativamente.

A seguir