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 vCPU durante a inicialização da instância para reduzir a latência de inicialização.
Definir e atualizar os limites de vCPU
Por padrão, cada instância é limitada a uma vCPU. É possível mudar isso para qualquer um dos valores mostrados na tabela a seguir.
Tabela de vCPU e memória
Confira a seguir os requisitos de memória para vCPUs:
| CPUs | Memória necessária |
|---|---|
| 0,08 vCPU | Até 512 MiB |
| 0,5 vCPU | Até 1 GiB |
| 1 vCPU | Até 4 GiB |
| 2 vCPU | Até 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 é possível configurar é de 8 vCPUs.
Quantidade mínima de vCPU
A configuração mínima de vCPU é de 0,08 vCPU.
Se você quiser usar menos de uma vCPU, selecione qualquer valor entre 0,08 e 1, em incrementos de 0,001.
Se você usar menos de uma vCPU, os seguintes requisitos serão aplicados:
| Configuração | Requisito |
|---|---|
| Memória | É necessário um mínimo de 0,5 vCPU para definir um limite de memória maior que 512 MiB. É necessário um mínimo de 1 vCPU para definir um limite de memória maior que 1 GiB. |
| Simultaneidade | A simultaneidade máxima precisa ser definida como 1. |
| Faturamento | As configurações de faturamento precisam ser definidas como faturamento com base em solicitações. |
| Ambiente de execução | Use o ambiente de execução de primeira geração. |
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:
- 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.
- Monitore as métricas de utilização da CPU no Cloud Monitoring ao testar o sistema sob carga.
- 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 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.
Funções exigidas
Para receber as permissões necessárias para configurar e implantar os serviços do Cloud Run, peça ao administrador para conceder a você os seguintes papéis do IAM:
- Desenvolvedor do Cloud Run (
roles/run.developer) no serviço Cloud Run - Usuário da conta de serviço (
roles/iam.serviceAccountUser) na conta de serviço
Se você estiver implantando um serviço ou função do código-fonte, você também precisará ter outros papéis concedidos no projeto e na conta de serviço do Cloud Build.
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 o serviço 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
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 CPU usando o Google Cloud console, a linha de comando gcloud ou um arquivo YAML ao criar um novo serviço ou implantar uma nova revisão:
Console
No Google Cloud console, acesse o Cloud Run:
Selecione Serviços no menu de navegação do Cloud Run e clique em Implantar contêiner para configurar um novo serviço. Se você estiver configurando um serviço atual, clique nele.
Ao configurar um novo serviço, preencha a página inicial de configurações de serviço e clique em Contêineres, Rede, segurança para expandir essa página.
Clique na guia Contêineres.
Selecione o limite de CPU na lista suspensa usando Personalizado se quiser usar menos de uma CPU. Selecione um valor de
1,2,4,6ou8CPUs. 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.Clique em Criar ou Implantar.
gcloud
É possível atualizar os limites de CPU de um determinado serviço usando o seguinte comando:
gcloud run services update SERVICE --cpu CPU
Substitua:
- SERVICE: o nome do serviço.
- CPU: o limite de CPU desejado. Especifique o valor de
1,2,4,6ou8CPUs. 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
Substitua:
IMAGE_URL: uma referência à imagem de contêiner, por exemplo,us-docker.pkg.dev/cloudrun/container/hello:latest. Se você usa o Artifact Registry, o repositório REPO_NAME já precisará ter sido criado. O URL segue o formato deLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.- CPU: o valor de
1,2,4,6ou8CPUs. 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
Se você estiver criando um novo serviço, pule esta etapa. Se você estiver atualizando um serviço existente, faça o download da configuração YAML correspondente:
gcloud run services describe SERVICE --format export > service.yaml
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: o nome do serviço do Cloud Run.
IMAGE_URL: uma referência à imagem de contêiner, por exemplo,us-docker.pkg.dev/cloudrun/container/hello:latest. Se você usa o Artifact Registry, o repositório REPO_NAME já precisará ter sido criado. O URL segue o formato deLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.- CPU: o valor do limite de CPU desejado.
Especifique o valor de
1,2,4,6ou8CPUs. 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: um novo nome de revisão ou exclua-o (se presente). 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
- Começa com
Crie ou atualize o serviço usando o seguinte comando:
gcloud run services replace service.yaml
O comando
gcloud run services replaceusa o arquivoservice.yamlpor padrão, se presente.
Terraform
Para saber como aplicar ou remover uma configuração do Terraform, consulte Comandos básicos do Terraform.
Adicione o seguinte a umgoogle_cloud_run_v2_service
recurso na configuração do Terraform:O recurso google_cloud_run_v2_service anterior especifica um limite de CPU em template.containers.resources.limits.
Substitua 1 pela contagem de CPU desejada. Dica: 1 corresponde a uma vCPU.
Definir otimização de CPU de inicialização
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.
Se a implantação do Cloud Run usar sidecars e você ativar a otimização da CPU de inicialização, todos os contêineres vão receber a otimização da CPU. O Cloud Run determina a quantidade de CPU otimizada para cada contêiner pelo limite de CPU.
É possível ativar ou desativar a otimização da CPU de inicialização usando o Google Cloud console, a Google Cloud CLI, um arquivo YAML ou um arquivo Terraform.
Console
No Google Cloud console, acesse o Cloud Run:
Selecione Serviços no menu de navegação do Cloud Run e clique em Implantar contêiner para configurar um novo serviço. Se você estiver configurando um serviço atual, clique nele.
Ao configurar um novo serviço, preencha a página inicial de configurações de serviço e clique em Contêineres, Rede, segurança para expandir essa página.
Clique na guia Contêineres.
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.
Clique em Criar ou Implantar.
gcloud
É 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_URLpor uma referência à imagem de contêiner, por exemplo,us-docker.pkg.dev/cloudrun/container/hello:latest; Se você usa o Artifact Registry, o repositório REPO_NAME já precisará ter sido criado. O URL segue o formato deLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.É 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
Se você estiver criando um novo serviço, pule esta etapa. Se você estiver atualizando um serviço existente, faça o download da configuração YAML correspondente:
gcloud run services describe SERVICE --format export > service.yaml
Atualize o atributo
run.googleapis.com/startup-cpu-boostespecificando'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'
Substitua SERVICE pelo nome do serviço do Cloud Run.
Crie ou atualize o serviço usando o seguinte comando:
gcloud run services replace service.yaml
O comando
gcloud run services replaceusa o arquivoservice.yamlpor padrão, se presente.
Terraform
Para saber como aplicar ou remover uma configuração do Terraform, consulte Comandos básicos do Terraform.
Adicione o seguinte a umgoogle_cloud_run_v2_service
recurso na configuração do Terraform:resource "google_cloud_run_v2_service" "default" {
name = "SERVICE"
location = "REGION"
template {
containers {
image = "us-docker.pkg.dev/cloudrun/container/hello"
resources {
startup_cpu_boost = CPU_BOOST
}
}
}
}
Substitua:
- SERVICE: o nome do serviço do Cloud Run.
- REGION: a Google Cloud região, por exemplo,
europe-west1. - CPU_BOOST:
truepara ativar a otimização da CPU de inicialização oufalsepara desativar.
Escrever
Para especificar limites de CPU no arquivo compose.yaml, adicione o atributo cpus à definição de serviço.
services: web: image: IMAGE cpus: CPU_VALUE
Substitua:
- IMAGE: o URL da imagem do contêiner.
- CPU_VALUE: o limite de CPU necessário, por exemplo,
2.
Implantar os serviços
Para implantar os serviços, execute o comando
gcloud run compose up:gcloud run compose up compose.yamlResponda
ya todas as solicitações para instalar os componentes necessários ou ativar as APIs.Opcional: torne seu serviço público se você quiser permitir o acesso não autenticado ao serviço.
Após a implantação, o URL do serviço do Cloud Run será exibido. Copie esse URL e cole-o no navegador para conferir o contêiner em execução. É possível desativar a autenticação padrão no Google Cloud console.
Ver configurações da CPU
Para ver as configurações atuais da CPU do serviço do Cloud Run:
Console
No Google Cloud console, acesse a página Serviços do Cloud Run:
Clique no serviço de seu interesse para abrir a página Detalhes do serviço.
Clique na guia Histórico de revisões,
No painel de detalhes à direita, a configuração da CPU está listada na guia Contêineres.
gcloud
Use o comando a seguir:
gcloud run services describe SERVICE
Localize a configuração de CPU na configuração retornada.
Linhas de execução do aplicativo e utilização da CPU
Ao selecionar um limite de CPU maior que 1 vCPU, considere o modelo de linhas de execução do aplicativo. Ao fazer o escalonamento automático, o Cloud Run usa a utilização média da CPU em todas as CPUs alocadas. Se o aplicativo for de linha de execução única, ele poderá usar apenas um núcleo, o que leva a uma utilização média baixa da CPU, mesmo sob carga. Isso pode impedir que o escalonamento automático baseado na CPU ocorra conforme o esperado.
Para evitar esse comportamento em um aplicativo de linha de execução única, se os requisitos de memória permitirem, recomendamos começar com uma vCPU. Isso resulta em um escalonamento automático melhor baseado na CPU. Se as necessidades de memória mais altas exigirem uma seleção de várias CPUs para um aplicativo de linha de execução única, considere ajustar a configuração de simultaneidade.