Limites de CPU

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

Esta página também descreve como ativar ou desativar a otimização de CPU de inicialização, um atributo que aumenta temporariamente a alocação de CPU durante a inicialização da instância para reduzir a latência de inicialização.

Definir e atualizar os limites de CPU

É possível definir limites de CPU para serviços e jobs do Cloud Run.

Por padrão, cada instância é limitada a 1 CPU. É possível aumentar isso usando qualquer valor inteiro até um máximo de 8 CPUs.

CPU e memória

Veja a seguir os requisitos mínimos de memória para CPUs:

CPUs Memória mínima
4 2 GiB
6 3 GiB
8 4 GiB

Como alternativa, apenas para os serviços do Cloud Run, se você quiser usar menos de uma CPU, selecione qualquer valor entre 0,08 e 1, em incrementos de 0,01. Qualquer valor acima de 1 precisa ser um número inteiro. If you use less than 1 CPU, the following requirements are enforced:

Configuração Requisito
Memória É necessário um mínimo de 0,5 CPU para definir um limite de memória maior que 512 MiB.
É necessário um mínimo de 1 CPU para definir um limite de memória maior que 1 GiB.
Simultaneidade A simultaneidade máxima precisa ser definida como 1.
CPU alocada A alocação de CPU precisa ser definida como CPU alocada somente durante o processamento da solicitação.
Ambiente de execução Use o ambiente de execução de primeira geração.

Para serviços do Cloud Run

Qualquer mudança na configuração leva à criação de uma nova revisão. As próximas revisões também recebem automaticamente essa configuração, a menos que você faça atualizações explícitas para alterá-la.

É possível definir limites de memória usando o console do Google Cloud, a linha de comando gcloud ou um arquivo YAML ao criar um novo serviço ou implantar uma nova revisão:

Console

  1. Acessar o Cloud Run

  2. Clique em Criar serviço se estiver configurando um novo serviço em que fará uma implantação. Se você estiver configurando um serviço atual, clique nele e em Editar e implantar nova revisão.

  3. Se você estiver configurando um novo serviço, preencha a página inicial de configurações de serviço conforme desejado e clique em Contêiner, redes, segurança para expandir a página de configuração do serviço.

  4. Clique na guia Contêiner.

    imagem

    • Selecione o limite de CPU que você quer na lista suspensa usando Personalizado se quiser usar menos de uma CPU. Selecione um 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.
  5. Clique em Criar ou Implantar.

Linha de comando

É possível atualizar os limites de CPU de um determinado serviço usando o seguinte comando:

gcloud run services update SERVICE --cpu CPU

Substituir

  • SERVICE pelo nome do serviço;
  • CPU pelo limite de CPU desejado. 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.

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

gcloud run deploy --image IMAGE_URL --cpu CPU

Substituir

  • IMAGE_URL por uma referência à imagem de contêiner. Por exemplo, us-docker.pkg.dev/cloudrun/container/hello:latest. Ao usar o Artifact Registry, o URL tem o seguinte formato: REGION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG. .
  • CPU com o valor 1, 2, 4, 6 ou 8. 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.

YAML

É possível fazer o download e conferir as configurações de serviço usando o comando gcloud run services describe --format export, que produz resultados limpos no formato YAML. Em seguida, modifique os campos descritos abaixo e faça upload do YAML modificado usando o comando gcloud run services replace. Modifique os campos somente conforme documentado.

  1. Para visualizar e fazer o download da configuração:

    gcloud run services describe SERVICE --format export > service.yaml
  2. Atualize o atributo cpu:

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: SERVICE
    spec:
      template:
        metadata:
          name: REVISION
        spec:
          containers:
          - image: IMAGE
            resources:
              limits:
                cpu: CPU

    Substitua:

    • SERVICE pelo nome do serviço do Cloud Run;
    • IMAGE_URL por uma referência à imagem de contêiner. Por exemplo, us-docker.pkg.dev/cloudrun/container/hello:latest. Ao usar o Artifact Registry, o URL tem o seguinte formato: REGION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
    • CPU pelo valor do limite de CPU desejado. 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.
    • REVISION por um novo nome de revisão ou excluí-lo (se houver). Se você fornecer um novo nome de revisão, ele precisará atender aos seguintes critérios:
      • Começa com SERVICE-
      • Contém apenas letras minúsculas, números e -
      • Não termina com um -
      • Não excede 63 caracteres
  3. Substitua o serviço pela nova configuração usando o seguinte comando:

    gcloud run services replace service.yaml

Terraform

Para saber como aplicar ou remover uma configuração do Terraform, consulte Comandos básicos do Terraform.

Adicione o seguinte a um recurso google_cloud_run_service em template.spec.containers na configuração do Terraform. Substitua 1000m pela contagem de CPU que você quer.

resources {
  limits = {
    # CPU usage limit
    # https://cloud.google.com/run/docs/configuring/cpu
    cpu = "1000m" # 1 vCPU

    # Memory usage limit (per container)
    # https://cloud.google.com/run/docs/configuring/memory-limits
    memory = "512Mi"
  }
}

Para jobs do Cloud Run

É preciso definir no mínimo 1 CPU para um job do Cloud Run.

Para especificar a CPU de um job do Cloud Run, faça o seguinte:

Console

  1. Acesse o Cloud Run

  2. Se você estiver configurando um novo job, clique na guia Jobs e preencha a página inicial de configurações do job conforme quiser. Se você estiver configurando um job, clique nele e em Editar.

  3. Clique em Contêiner, variáveis e secrets, conexões e segurança para expandir a página de propriedades do job.

  4. Clique na guia Geral.

    imagem

    • Selecione o limite de CPU que você quer na lista suspensa. Selecione um valor de CPUs 1, 2, 4, 6 ou 8. Os jobs exigem no mínimo 1 CPU. Consulte a tabela em Como configurar e atualizar limites de CPU para as configurações necessárias.
  5. Clique em Criar ou Atualizar.

Linha de comando

  1. Atualize os limites de CPU de um determinado job usando o seguinte comando:

    gcloud run jobs update JOB_NAME --cpu CPU

    Substituir

    • JOB_NAME pelo nome do job;
    • CPU pelo limite de CPU desejado. Especifique o valor das CPUs 1, 2, 4, 6 ou 8. Os jobs exigem no mínimo 1 CPU. Consulte a tabela em Como configurar e atualizar limites de CPU para as configurações necessárias.

    Também é possível definir a CPU ao criar um job usando o comando:

    gcloud run jobs create JOB_NAME --image IMAGE_URL --cpu CPU

    Substituir

    • JOB_NAME pelo nome do job;
    • IMAGE_URL por uma referência à imagem de contêiner. Por exemplo, us-docker.pkg.dev/cloudrun/container/job:latest;
    • CPU pelo limite de CPU desejado. Especifique o valor das CPUs 1, 2, 4, 6 ou 8. Os jobs exigem no mínimo 1 CPU. Consulte a tabela em Como configurar e atualizar limites de CPU para as configurações necessárias.

YAML

Faça o download e veja a configuração do job que já existe usando o comando gcloud run jobs describe --format export, que gera resultados limpos no formato YAML. Em seguida, modifique os campos descritos abaixo e faça upload do YAML modificado usando o comando gcloud run jobs replace. Modifique os campos somente conforme documentado.

  1. Para visualizar e fazer o download da configuração:

    gcloud run jobs describe JOB_NAME --format export > job.yaml
  2. Atualize o atributo cpu:

    apiVersion: run.googleapis.com/v1
    kind: Job
    metadata:
      name: JOB
    spec:
      template:
        spec:
          template:
            spec:
              containers:
              - image: IMAGE
              resources:
                limits:
                  cpu: CPU

    Substitua CPU pelo limite de CPU desejado. Especifique o valor de 1, 2, 4, 6 ou 8 CPUs. Os jobs exigem no mínimo 1 CPU. Consulte a tabela em Como configurar e atualizar limites de CPU para as configurações necessárias.

    Também é possível especificar mais configurações, como variáveis de ambiente ou limites de memória.

  3. Atualize a configuração do job que já existe:

    gcloud run jobs replace job.yaml

Definir a otimização da CPU de inicialização (serviços)

O recurso de otimização da CPU de inicialização para revisões fornece mais CPU durante o tempo de inicialização da instância e por 10 segundos após o início da instância.

O aumento real da CPU varia de acordo com as configurações de limite da CPU:

Limite de CPU CPU otimizada
0-1 2
2 4
4 8
6 8
8 8

A CPU otimizada alocada é cobrada durante o tempo de inicialização do contêiner. Por exemplo, se o tempo de inicialização do contêiner for de 15 segundos e você alocar 2 CPUs com a otimização da CPU de inicialização, você será cobrado por 4 CPUs durante o tempo de inicialização da instância (possivelmente mais curto), incluindo os 10 segundos após o término da inicialização do contêiner e duas CPUs durante o restante do ciclo de vida.

É possível ativar ou desativar a otimização da CPU de inicialização usando o console do Google Cloud ou a Google Cloud CLI.

Console

  1. Acessar o Cloud Run

  2. Clique em Criar serviço se estiver configurando um novo serviço em que fará uma implantação. Se você estiver configurando um serviço atual, clique nele e em Editar e implantar nova revisão.

  3. Se você estiver configurando um novo serviço, preencha a página inicial de configurações de serviço conforme desejado e clique em Contêiner, redes, segurança para expandir a página de configuração do serviço.

  4. Clique na guia Contêiner.

    image

    • Para ativar a otimização da CPU de inicialização, marque a caixa de seleção Otimização da CPU de inicialização. Para desativar esse atributo, desmarque a opção.
  5. Clique em Criar ou Implantar.

Linha de comando

  1. É possível ativar a otimização da CPU de inicialização para um determinado serviço usando o seguinte comando:

    gcloud run services update SERVICE --cpu-boost

    Substitua SERVICE pelo nome do serviço.

    É possível ativar a otimização da CPU de inicialização durante a implantação usando o comando:

    gcloud run deploy --image IMAGE_URL --cpu-boost

    IMAGE_URL por uma referência à imagem de contêiner, por exemplo, us-docker.pkg.dev/cloudrun/container/hello:latest; Ao usar o Artifact Registry, o URL tem o seguinte formato: REGION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG. .

  2. É possível desativar a otimização da CPU de inicialização de um determinado serviço usando o seguinte comando:

    gcloud run services update SERVICE --no-cpu-boost

    Substitua SERVICE pelo nome do serviço.

    É possível desativar a otimização da CPU de inicialização durante a implantação usando o comando:

    gcloud run deploy --image IMAGE_URL --no-cpu-boost

YAML

É possível fazer o download e conferir as configurações de serviço usando o comando gcloud run services describe --format export, que produz resultados limpos no formato YAML. Em seguida, modifique os campos descritos abaixo e faça upload do YAML modificado usando o comando gcloud run services replace. Modifique os campos somente conforme documentado.

  1. Para ver e fazer o download da configuração:

    gcloud run services describe SERVICE --format export > service.yaml
  2. Atualize o atributo run.googleapis.com/startup-cpu-boost especificando 'true' para ativar a otimização da CPU de inicialização, ou 'false' para desativar:

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: SERVICE
    spec:
      template:
        metadata:
          annotations:
            run.googleapis.com/startup-cpu-boost: 'true'

    Substituir

    • SERVICE pelo nome do serviço do Cloud Run;
  3. Substitua o serviço pela nova configuração usando o seguinte comando:

    gcloud run services replace service.yaml

Ver configurações da CPU

Para ver as configurações atuais da CPU do serviço do Cloud Run:

Console

  1. Acesse o Cloud Run

  2. Clique no serviço de seu interesse para abrir a página Detalhes do serviço.

  3. Clique na guia Revisões.

  4. No painel de detalhes à direita, a configuração da CPU está listada na guia Contêiner.

Linha de comando

  1. Use o comando a seguir:

    gcloud run services describe SERVICE
  2. Localize a configuração de CPU na configuração retornada.

Para ver as configurações atuais da CPU do job do Cloud Run:

Console

  1. Acessar jobs do Cloud Run

  2. Clique no job em que você tem interesse para abrir a página Detalhes do job.

  3. Clique na guia Configuração.

  4. Localize a definição da CPU nos detalhes da configuração.

Linha de comando

  1. Use o comando a seguir:

    gcloud run jobs describe JOB_NAME
  2. Localize a configuração de CPU na configuração retornada.