Esta página descreve como especificar o número de CPUs a usar para cada instância do Cloud Run. Por predefinição, as instâncias de contentores do Cloud Run estão limitadas a 1 CPU. Pode aumentar ou diminuir este valor, conforme descrito nesta página.
Esta página também descreve como ativar ou desativar o aumento da CPU no arranque, uma funcionalidade que aumenta temporariamente a atribuição da CPU durante o arranque da instância para reduzir a latência de arranque.
Defina e atualize os limites de CPU
Por predefinição, cada instância está limitada a 1 CPU. Pode alterar esta opção para qualquer um dos valores apresentados na tabela seguinte.
Tabela de CPU e memória
Seguem-se os requisitos mínimos de memória para CPUs:
CPUs | Memória mínima |
---|---|
1 | 128 MiB |
2 | 128 MiB |
4 | 2 GiB |
6 | 4 GiB |
8 | 4 GiB |
Em alternativa, se quiser usar menos de 1 CPU, pode selecionar qualquer valor entre 0,08 e 1, em incrementos de 0,001. Os valores superiores a 1 têm de ser valores inteiros. Se usar menos de 1 CPU, os seguintes requisitos são aplicados:
Definição | Requisito |
---|---|
Memória | É necessário um mínimo de 0,5 CPU para definir um limite de memória superior a 512 MiB. É necessário um mínimo de 1 CPU para definir um limite de memória superior a 1 GiB. |
Simultaneidade | O número máximo de pedidos simultâneos tem de ser definido como 1 . |
Faturação | As definições de faturação têm de estar definidas para faturação baseada em pedidos. |
Ambiente de execução | Tem de usar o ambiente de execução de primeira geração. |
Funções necessárias
Para receber as autorizações de que precisa para configurar e implementar serviços do Cloud Run, peça ao seu administrador para lhe conceder as seguintes funções de IAM:
-
Programador do Cloud Run (
roles/run.developer
) no serviço Cloud Run -
Utilizador da conta de serviço (
roles/iam.serviceAccountUser
) na identidade do serviço
Se estiver a implementar um serviço ou uma função a partir do código fonte, também tem de ter funções adicionais concedidas no seu projeto e na conta de serviço do Cloud Build.
Para ver uma lista de funções e autorizações de IAM associadas ao Cloud Run, consulte os artigos Funções de IAM do Cloud Run e Autorizações de IAM do Cloud Run. Se o seu serviço do Cloud Run interage com Google Cloud APIs, como as bibliotecas cliente da Google Cloud, consulte o guia de configuração da identidade do serviço. Para mais informações sobre a atribuição de funções, consulte as autorizações de implementação e faça a gestão do acesso.
Configure os limites de CPU
Qualquer alteração de configuração leva à criação de uma nova revisão. As revisões subsequentes também vão receber automaticamente esta definição de configuração, a menos que faça atualizações explícitas para a alterar.
Pode definir limites de CPU através da Google Cloud consola, da linha de comandos gcloud ou de um ficheiro YAML quando cria um novo serviço ou implementa uma nova revisão:
Consola
Na Google Cloud consola, aceda ao Cloud Run:
Selecione Serviços no menu e clique em Implementar contentor para configurar um novo serviço. Se estiver a configurar um serviço existente, clique no serviço e, de seguida, em Editar e implementar nova revisão.
Se estiver a configurar um novo serviço, preencha a página de definições iniciais do serviço e, de seguida, clique em Contentores, volumes, rede, segurança para expandir a página de configuração do serviço.
Clique no separador Contentor.
- Selecione o limite de CPU pretendido na lista pendente. Se quiser usar menos de 1 CPU, selecione Personalizado. Selecione um valor de
1
,2
,4
,6
ou8
CPUs ou, para menos de 1 CPU, especifique um valor de 0,08 a menos de 1,00, em incrementos de 0,01. (Consulte a tabela em Definir e atualizar limites de CPU para ver as definições necessárias.)
- Selecione o limite de CPU pretendido na lista pendente. Se quiser usar menos de 1 CPU, selecione Personalizado. Selecione um valor de
Clique em Criar ou Implementar.
gcloud
Pode atualizar os limites da CPU para um determinado serviço através do seguinte comando:
gcloud run services update SERVICE --cpu CPU
Substitua o seguinte:
- SERVICE: o nome do seu serviço.
- CPU: o limite de CPU desejado. Especifique o valor
1
,2
,4
,6
ou8
CPUs ou, para menos de 1 CPU, especifique um valor de 0,08 a menos de 1,00, em incrementos de 0,01. (Consulte a tabela em Definir e atualizar limites de CPU para ver as definições necessárias.)
Também pode definir a CPU durante a implementação através do comando:
gcloud run deploy --image IMAGE_URL --cpu CPU
Substitua o seguinte:
- IMAGE_URL: uma referência à imagem do contentor, por exemplo,
us-docker.pkg.dev/cloudrun/container/hello:latest
. Se usar o Artifact Registry, o repositório REPO_NAMEtem de já estar criado. O URL segue o formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
. - CPU: o valor
1
,2
,4
,6
ou8
CPUs, ou para menos de 1 CPU, especifique um valor de 0,08 a menos de 1,00, em incrementos de 0,01. (Consulte a tabela em Definir e atualizar limites de CPU para ver as definições necessárias.)
YAML
Se estiver a criar um novo serviço, ignore este passo. Se estiver a atualizar um serviço existente, transfira a respetiva configuração YAML:
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 o seguinte:
- SERVICE: o nome do seu serviço do Cloud Run.
- IMAGE_URL: uma referência à imagem do contentor, por exemplo,
us-docker.pkg.dev/cloudrun/container/hello:latest
. Se usar o Artifact Registry, o repositório REPO_NAMEtem de já estar criado. O URL segue o formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
. - CPU: o valor do limite da CPU pretendido.
Especifique o valor
1
,2
,4
,6
ou8
CPUs ou, para menos de 1 CPU, especifique um valor de 0,08 a menos de 1,00, em incrementos de 0,01. (Consulte a tabela em Definir e atualizar limites de CPU para ver as definições necessárias.) - REVISION com um novo nome de revisão ou elimine-o (se existir). Se fornecer um novo nome de revisão, este tem de cumprir os seguintes critérios:
- Começa com
SERVICE-
- Contém apenas letras minúsculas, números e
-
- Não termina com um
-
- Não exceder 63 carateres
- Começa com
Crie ou atualize o serviço com o seguinte comando:
gcloud run services replace service.yaml
Terraform
Para saber como aplicar ou remover uma configuração do Terraform, consulte os comandos básicos do Terraform.
Adicione o seguinte a um recursogoogle_cloud_run_v2_service
na sua 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 quantidade de CPUs pretendida. Sugestão: 1
corresponde a 1 vCPU.
Defina o aumento da CPU no arranque
A funcionalidade aumento da CPU de arranque para revisões fornece CPU adicional durante o tempo de arranque da instância e durante 10 segundos após o início da instância.
O aumento real da CPU varia consoante as definições do limite da CPU:
Limite da CPU | CPU com aumento de desempenho |
---|---|
0-1 | 2 |
2 | 4 |
4 | 8 |
6 | 8 |
8 | 8 |
É-lhe cobrado o tempo de arranque do contentor com base na CPU aumentada atribuída. Por exemplo, se o tempo de arranque do contentor for de 15 segundos e atribuir 2 CPUs, com o aumento de CPU de arranque, são-lhe cobrados 4 CPUs durante o tempo de arranque da instância (possivelmente mais curto), incluindo os 10 segundos após o contentor terminar o arranque, e 2 CPUs durante o resto do ciclo de vida do contentor.
Se a implementação do Cloud Run usar sidecars e ativar o aumento da CPU no arranque, todos os contentores recebem o aumento da CPU. O Cloud Run determina a quantidade de CPU aumentada para cada contentor pelo limite de CPU.
Pode ativar ou desativar o aumento da velocidade do CPU no arranque através da Google Cloud consola, da Google Cloud CLI, de um ficheiro YAML ou de um ficheiro Terraform.
Consola
Na Google Cloud consola, aceda ao Cloud Run:
Selecione Serviços no menu e clique em Implementar contentor para configurar um novo serviço. Se estiver a configurar um serviço existente, clique no serviço e, de seguida, em Editar e implementar nova revisão.
Se estiver a configurar um novo serviço, preencha a página de definições iniciais do serviço e, de seguida, clique em Contentores, volumes, rede, segurança para expandir a página de configuração do serviço.
Clique no separador Contentor.
- Para ativar o aumento da CPU no arranque, selecione a caixa de verificação Aumento da CPU no arranque. Para desativar esta funcionalidade, desmarque a caixa de verificação.
Clique em Criar ou Implementar.
gcloud
Pode ativar o aumento da velocidade do CPU no arranque para um determinado serviço através do seguinte comando:
gcloud run services update SERVICE --cpu-boost
Substitua SERVICE pelo nome do seu serviço.
Pode ativar o aumento da velocidade do CPU no arranque durante a implementação através do comando:
gcloud run deploy --image IMAGE_URL --cpu-boost
Substitua IMAGE_URL por uma referência à imagem do contentor, por exemplo,
us-docker.pkg.dev/cloudrun/container/hello:latest
. Se usar o Artifact Registry, o repositório REPO_NAMEtem de já estar criado. O URL segue o formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
.Pode desativar o aumento da CPU no arranque para um determinado serviço através do seguinte comando:
gcloud run services update SERVICE --no-cpu-boost
Substitua SERVICE pelo nome do seu serviço.
Pode desativar o aumento da velocidade do CPU no arranque durante a implementação com o comando:
gcloud run deploy --image IMAGE_URL --no-cpu-boost
YAML
Se estiver a criar um novo serviço, ignore este passo. Se estiver a atualizar um serviço existente, transfira a respetiva configuração YAML:
gcloud run services describe SERVICE --format export > service.yaml
Atualize o atributo
run.googleapis.com/startup-cpu-boost
especificando'true'
para ativar o aumento da velocidade do CPU no arranque 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 seu serviço do Cloud Run.
Crie ou atualize o serviço com o seguinte comando:
gcloud run services replace service.yaml
Terraform
Para saber como aplicar ou remover uma configuração do Terraform, consulte os comandos básicos do Terraform.
Adicione o seguinte a um recursogoogle_cloud_run_v2_service
na sua 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 o seguinte:
- SERVICE: o nome do seu serviço do Cloud Run.
- REGION: a Google Cloud região, por exemplo,
europe-west1
. - CPU_BOOST:
true
para ativar o aumento da velocidade da CPU no arranque oufalse
para o desativar.
Veja as definições da CPU
Para ver as definições atuais da CPU do seu serviço do Cloud Run:
Consola
Na Google Cloud consola, aceda ao Cloud Run:
Clique no serviço que lhe interessa para abrir a página Detalhes do serviço.
Clique no separador Revisões.
No painel de detalhes à direita, a definição de CPU é apresentada no separador Contentor.
gcloud
Use o seguinte comando:
gcloud run services describe SERVICE
Localize a definição da CPU na configuração devolvida.
Processamento de várias tarefas da aplicação e utilização da CPU
Quando selecionar um limite de CPU superior a 1 vCPU, considere o modelo de processamento paralelo da sua aplicação. Quando dimensiona automaticamente, o Cloud Run usa a utilização média da CPU em todas as CPUs atribuídas. Se a sua aplicação for de thread único, só pode usar totalmente um núcleo, o que leva a uma utilização média da CPU baixa, mesmo sob carga. Isto pode impedir que o ajuste de escala automático baseado na CPU ocorra como esperado.
Para evitar este comportamento numa aplicação de thread único, se os seus requisitos de memória o permitirem, recomendamos que comece com 1 vCPU. Isto resulta numa escalabilidade automática baseada na CPU melhorada. Se as necessidades de memória mais elevadas exigirem uma seleção de vários CPUs para uma aplicação de thread único, considere ajustar a definição de simultaneidade.