Simultaneidade

No Cloud Run for Anthos no Google Cloud, 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 precisarem 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 for Anthos 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

Por padrão, as instâncias de contêiner do Cloud Run for Anthos podem receber muitas solicitações ao mesmo tempo (até um máximo de 80). 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 for Anthos 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 de 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 a um serviço do Cloud Run for Anthos definido com a simultaneidade máxima de um. A linha superior verde mostra as solicitações ao longo do tempo e a linha azul inferior mostra o número de instâncias de contêiner iniciadas para processar as solicitações.

Simultaneidade definida como 1

As métricas a seguir mostram 400 clientes fazendo três solicitações por segundo a um serviço do Cloud Run for Anthos definido como uma simultaneidade máxima de 80. A linha superior verde mostra as solicitações ao longo do tempo e a linha azul inferior mostra o número de instâncias de contêiner iniciadas para processar 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 serviços do Cloud Run for Anthos, consulte Como configurar a simultaneidade.

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