Pode escolher a quantidade de memória a disponibilizar para o seu serviço do Cloud Run. Esta página descreve como especificar a quantidade de memória disponível para o seu serviço.
Compreenda a utilização de memória
As instâncias do Cloud Run que excedem o respetivo limite de memória permitido são terminadas.
A memória disponível para a sua instância tem de ser suficiente para:
- Executar o ficheiro executável do serviço, porque o ficheiro executável tem de ser carregado na memória
- Alocar memória no processo do serviço
- Escrever ficheiros no sistema de ficheiros
O tamanho da imagem do contentor implementado não afeta a memória disponível para a instância.
Defina e atualize os limites de memória
Pode definir limites de memória nos serviços do Cloud Run. Por predefinição, a memória alocada a cada instância de uma revisão é de 512 MiB, e a memória alocada a uma função é de 256 MiB.
CPUs mínimas necessárias
A quantidade de memória alocada que escolher corresponde a uma quantidade mínima de CPU para o seu serviço. Quando definir um limite de memória, são necessários os seguintes limites mínimos de CPU:
Memória | CPUs mínimas necessárias |
---|---|
128 MiB | 0,083 vCPU |
256 MiB | .167 vCPU |
512 MiB | 0,333 vCPU |
1 GiB | 0,583 vCPU |
2 GiB | 1 vCPU |
Mais de 4 GiB | 2 vCPU |
Mais de 8 GiB | 4 vCPU |
Mais de 16 GiB | 6 vCPU |
Mais de 24 GiB | 8 vCPU |
Quantidade máxima de memória
A quantidade máxima de memória que pode configurar é de 32 gibibytes (32 Gi
).
Memória mínima
A definição de memória mínima varia consoante use o ambiente de execução de primeira ou segunda geração:
- 128 MiB para a primeira geração
- 512 MiB para a segunda 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 memória
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.
Para os serviços do Cloud Run, pode definir limites de memória através da Google Cloud consola, da linha de comandos do 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 tamanho de memória pretendido na lista pendente Memória.
Clique em Criar ou Implementar.
gcloud
Pode atualizar a atribuição de memória de um determinado serviço através do seguinte comando:
gcloud run services update SERVICE --memory SIZE
Substitua SERVICE pelo nome do seu serviço e SIZE pelo tamanho de memória desejado. O formato do tamanho é um número de vírgula flutuante ou fixo seguido
de uma unidade: G
ou M
, que correspondem, respetivamente, a gigabyte ou megabyte, ou use os equivalentes de potência de dois: Gi
ou Mi
que correspondem, respetivamente, a gibibyte ou mebibyte.
Também pode definir limites de memória durante a implementação através do comando:
gcloud run deploy --image IMAGE_URL --memory SIZE
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
. - SIZE: os valores descritos acima.
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
memory
:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: metadata: name: REVISION spec: containers: - image: IMAGE resources: limits: memory: SIZE
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
. - SIZE: o tamanho da memória pretendido.
O formato é um número de vírgula fixa ou flutuante seguido de uma unidade:
G
ouM
, correspondente a gigabyte ou megabyte, respetivamente, ou use os equivalentes de potência de dois:Gi
ouMi
, correspondente a gibibyte ou mebibyte, respetivamente. - 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:Em template.containers.resources.limits
, substitua 512Mi
pelo limite de memória pretendido do seu serviço.
Otimize a memória para serviços
Para um serviço do Cloud Run, pode determinar o requisito de memória máximo de um serviço através do seguinte cálculo: (memória permanente) + (memória por pedido) * (concorrência do serviço)
Assim,
Se aumentar a simultaneidade do seu serviço, também deve aumentar o limite de memória para ter em conta o pico de utilização.
Se diminuir a simultaneidade do seu serviço, considere reduzir o limite de memória para poupar nos custos de utilização de memória.
Para mais orientações sobre como minimizar a utilização de memória por pedido, leia as Sugestões de desenvolvimento sobre variáveis globais.
Veja as definições do limite de memória
Para ver as definições atuais do limite de memória 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 do limite de memória está listada no separador Contentor.
gcloud
Use o seguinte comando:
gcloud run services describe SERVICE
Localize a definição do limite de memória na configuração devolvida.