Configurar limites de CPU para instâncias

Nesta página, descrevemos como especificar o número de vCPUs a serem usadas para cada instância do Cloud Run. Por padrão, as instâncias de contêiner do Cloud Run são limitadas a 2 vCPUs. É possível aumentar ou diminuir esse valor conforme descrito nesta página.

Definir e atualizar limites de vCPU

Por padrão, cada instância é definida como 2 vCPUs e 2 GiB de memória. É possível mudar para qualquer um dos valores mostrados na tabela a seguir.

A simultaneidade não é configurável. Ela é definida como 80.

Tabela de vCPU e memória

Confira a seguir os requisitos de memória para vCPUs:

CPUs Memória necessária
1 vCPU 512 MiB a 4 GiB
2 vCPU 512 MiB a 8 GiB
4 vCPUs 2 a 16 GiB
6 vCPUs 4 a 24 GiB
8 vCPUs 4 a 32 GiB

Os valores maiores que 1 precisam ser números inteiros.

Quantidade máxima de vCPU

A quantidade máxima de vCPU que você pode configurar é 8 vCPUs.

Quantidade mínima de vCPU

A vCPU mínima para a instância é 1 vCPU. Embora cada contêiner possa ser configurado com CPUs fracionárias, a soma de todos os contêineres na instância precisa ser maior ou igual a 1 vCPU.

Considerações sobre o custo

O custo do recurso do Cloud Run é afetado pela configuração da CPU e pelo tempo de atividade do recurso, entre outros fatores. O provisionamento excessivo de recursos pode aumentar os custos. Para determinar qual configuração de CPU é melhor para seu recurso:

  1. Estabeleça uma configuração de linha de base inicial para um limite de CPU que equilibre a utilização e os custos da CPU.
  2. Monitore as métricas de utilização da CPU no Cloud Monitoring ao testar o sistema sob carga.
  3. Ajuste a configuração da CPU conforme necessário.

Se a utilização da CPU for consistentemente baixa sob carga máxima, considere reduzir a alocação de vCPU. Se a latência for alta, considere aumentar a alocação de vCPU.

É possível conferir dados de custo resumidos, dados de utilização e recomendações de otimização de custos para recursos na página de otimização do Cloud Hub. Consulte os preços do Cloud Run ou estime os custos com a calculadora de preços para mais informações.

Burst e limitação da CPU

As instâncias do Cloud Run usam um modelo de alocação de CPU compartilhada com cotas de linha de base e capacidade de burst, gerenciado de maneira semelhante à alocação cgroup do programador do Linux.

Ao configurar limites de vCPU para uma instância do Cloud Run, o comportamento da CPU consiste nos seguintes mecanismos:

  • Cota de linha de base:cada instância recebe uma linha de base contínua de 6,25% (1/16) por vCPU configurada. É possível executar a instância nessa linha de base indefinidamente.
  • Capacidade de burst:quando a instância é executada abaixo da capacidade de linha de base, ela acumula continuamente o tempo de CPU não utilizado em um orçamento de saldo de burst (até 500 segundos). Quando a carga de trabalho aciona tarefas computacionalmente intensivas, a instância automaticamente aumenta até 100% da alocação de vCPU configurada até que o saldo de burst acumulado seja esgotado.
  • Limitação:quando o saldo de burst é esgotado durante a alta utilização da CPU, a instância é limitada de volta à cota básica (6,25% por vCPU configurada) até que o saldo de burst adicional seja acumulado.
  • Reposição:o orçamento de burst é reposto sempre que o uso da CPU cai abaixo da linha de base de 6,25%.

Funções exigidas

Para receber as permissões necessárias para configurar e implantar instâncias do Cloud Run, peça ao administrador para conceder a você os seguintes papéis do IAM:

Para uma lista de papéis e permissões do IAM associados ao Cloud Run, consulte Papéis do IAM do Cloud Run e Permissões do IAM do Cloud Run. Se a instância do Cloud Run interage com Google Cloud APIs, como as bibliotecas de cliente do Cloud, consulte o guia de configuração de identidade de serviço. Para mais informações sobre como conceder papéis, consulte permissões de implantação e gerenciar acesso.

Configurar limites de CPU

É possível definir limites de CPU para uma instância do Cloud Run usando a Google Cloud CLI ou o YAML:

gcloud

É possível atualizar os limites de CPU de uma determinada instância usando o comando a seguir:

gcloud beta run instances update INSTANCE --cpu CPU

Substitua:

  • INSTANCE: o nome da instância.
  • CPU: o limite de CPU. Especifique o valor 1, 2, 4, 6, ou 8 CPUs, seguindo os requisitos mostrados na tabela de CPU e memória.

Também é possível definir o limite de CPU durante a implantação usando este comando:

gcloud beta run instances deploy --image IMAGE_URL --cpu CPU

Substitua:

  • IMAGE_URL: uma referência à imagem de contêiner, como us-docker.pkg.dev/cloudrun/container/hello:latest.
  • CPU: o valor 1, 2, 4, 6, ou 8 CPUs, seguindo os requisitos mostrados na tabela de CPU e memória.

YAML

  1. Se você estiver criando uma nova instância, pule esta etapa. Se você estiver atualizando uma instância existente, baixe a configuração YAML correspondente:

    gcloud beta run instances describe INSTANCE --format export > instance.yaml
  2. O exemplo a seguir contém a configuração YAML:

    apiVersion: run.googleapis.com/v1
    kind: Instance
    metadata:
      name: INSTANCE
      annotations:
        run.googleapis.com/launch-stage: BETA
    spec:
      containers:
    image: IMAGE_URL
      resources:
        limits:
          cpu: `CPU`

    Substitua:

    • INSTANCE: o nome da instância do Cloud Run.
    • IMAGE_URL: uma referência à imagem de contêiner, como us-docker.pkg.dev/cloudrun/container/hello:latest.
    • CPU: o valor do limite de CPU. Especifique o valor de 1, 2, 4, 6 ou 8 CPUs. Para menos de uma CPU, especifique um valor de 0,08 a menos de 1,00, em incrementos de 0,01. (Consulte a tabela em Como configurar e atualizar limites de CPU para as configurações necessárias.)
  3. Crie ou atualize a instância usando o comando a seguir:

    gcloud beta run instances replace instance.yaml

Exemplo de cenário: instância de 2 vCPUs

Se uma instância estiver configurada com um limite de 2 vCPUs:

  1. Operação de linha de base:a instância pode ser executada de forma consistente consumindo até 0,125 vCPU (6,25% de 2 vCPUs). Ao operar nessa linha de base, ela acumula o saldo de burst.
  2. Burst completo:quando a carga de trabalho exige mais poder de processamento, a instância aumenta até 2 vCPUs (100% de utilização), consumindo o orçamento de burst acumulado.
  3. Limitação:quando o orçamento de saldo de burst é esgotado, a instância é limitada de volta à linha de base de 0,125 vCPU até acumular um novo saldo de burst.

Conferir a configuração da CPU da instância

É possível usar o comando gcloud beta run instances describe da Google Cloud CLI para conferir os detalhes da configuração.