Simultaneidade

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.

Quando mais instâncias de contêiner estiverem processando solicitações, mais CPU e memória serão usadas, gerando custos maiores. Quando novas instâncias de contêiner precisam ser iniciadas, as solicitações podem levar mais tempo para serem processadas, diminuindo o desempenho do serviço.

Para ter mais controle, o Cloud Run fornece uma configuração de simultaneidade que especifica o número máximo de solicitações que podem ser processadas simultaneamente por uma determinada instância de contêiner.

Valores de simultaneidade

A simultaneidade é configurável. Por padrão, cada instância de contêiner do Cloud Run pode receber até 80 solicitações ao mesmo tempo. aumentá-la até o máximo de 1000. Em comparação, as soluções de Funções como serviço (FaaS), como o Cloud Functions, têm uma simultaneidade fixa de 1.

Embora seja necessário usar o valor de simultaneidade padrão, é possível, se necessário, diminuir a simultaneidade máxima. Por exemplo, se o código não puder processar solicitações paralelas, defina a simultaneidade como 1.

O valor de simultaneidade especificado é um máximo, e o Cloud Run talvez não envie tantas solicitações para uma instância de contêiner específica se a CPU da instância já tiver muito uso.

O diagrama a seguir mostra como a configuração de simultaneidade afeta o número de instâncias de contêiner necessárias para processar solicitações simultâneas recebidas:

Diagrama de simultaneidade

Quando limitar a simultaneidade a uma solicitação por vez?

É possível limitar a simultaneidade para que apenas uma solicitação por vez seja enviada para cada instância do contêiner em execução. Considere fazer isso nos casos em que:

  • cada solicitação usa a maior parte da CPU ou memória disponível;
  • sua imagem de contêiner não foi projetada para processar várias solicitações ao mesmo tempo, por exemplo, seu contêiner depende do estado global que duas solicitações não podem compartilhar.

Uma simultaneidade de 1 provavelmente terá impacto negativo sobre o desempenho do escalonamento, já que muitas instâncias de contêiner precisarão ser iniciadas para processar um pico nas solicitações de entrada.

Estudo de caso

As métricas a seguir mostram um caso de uso em que 400 clientes estão fazendo três solicitações por segundo para um serviço do Cloud Run definido como uma simultaneidade máxima de 1. A linha superior verde mostra as solicitações ao longo do tempo, a linha azul inferior mostra o número de instâncias de contêiner iniciadas para lidar com as solicitações.

Simultaneidade definida como 1

As métricas a seguir mostram 400 clientes fazendo três solicitações por segundo para um serviço do Cloud Run definido como uma simultaneidade máxima de 80. A linha superior verde mostra as solicitações ao longo do tempo, a linha azul inferior mostra o número de instâncias de contêiner iniciadas para lidar com as solicitações. Muito menos instâncias são necessárias para lidar com o mesmo volume de solicitações.

Simultaneidade definida como 80

A seguir

Para gerenciar a simultaneidade de seus serviços do Cloud Run, consulte Como configurar a simultaneidade.

Para otimizar sua configuração de simultaneidade, consulte as dicas de desenvolvimento para ajustar a simultaneidade.