Nesta página, descrevemos como definir limites de memória.
Entender o uso da memória
As instâncias do Cloud Run que excedem o limite de memória permitido são encerradas.
Os itens a seguir afetam a memória disponível da instância:
- Abrir o executável do aplicativo (já que o executável precisa ser carregado na memória).
- Alocar memória no processo do aplicativo.
- Gravar arquivos no sistema.
O tamanho da imagem de contêiner implantada não afeta a memória disponível.
Definir e atualizar os limites de memória
É possível definir limites de memória nos serviços do Cloud Run. Por padrão, a memória alocada para cada instância de uma revisão é 512 MiB.
CPU mínima necessária
Ao definir um limite de memória, os seguintes limites mínimos de CPU são obrigatórios:
Memória | CPU mínima necessária |
---|---|
Mais de 4 GiB | 2 |
Mais de 8 GiB | 4 |
Mais de 16 GiB | 6 |
Mais de 24 GiB | 8 |
Quantidade máxima de memória
A quantidade máxima de memória que você pode configurar é
32 gibibyte (32 Gi
).
Memória mínima
A configuração mínima de memória depende do 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 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
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 as APIs do Google Cloud, 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 memória
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.
Para serviços do Cloud Run, é 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 um novo revisão:
Console
No console do Google Cloud, acesse o Cloud Run:
Clique em Implantar contêiner e selecione Serviço para configurar um novo serviço. Se você estiver configurando um serviço atual, clique nele e em Editar e implantar nova revisão.
Ao configurar um novo serviço, preencha a página inicial de configurações de serviço conforme preferir e clique em Contêineres, volumes, redes e segurança para expandir essa página.
Clique na guia Contêiner.
- Selecione o tamanho de memória que você quer na lista suspensa Memória.
Clique em Criar ou Implantar.
gcloud
É possível atualizar a alocação de memória de um determinado serviço usando o comando a seguir:
gcloud run services update SERVICE --memory SIZE
Substitua SERVICE pelo nome do serviço e SIZE pelo tamanho da memória que você quer. O formato do tamanho é um número de ponto fixo ou flutuante seguido
de uma unidade: G
ou M
correspondente a gigabyte ou megabyte,
respectivamente, ou usa a potência de dois equivalentes: Gi
ou Mi
correspondentes a gibibyte ou mebibyte, respectivamente.
Também é possível definir limites de memória durante a implantação usando o comando:
gcloud run deploy --image IMAGE_URL --memory SIZE
Substituir
- IMAGE_URL por 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 tem o formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
- SIZE pelos valores descritos acima.
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
memory
:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: metadata: name: REVISION spec: containers: - image: IMAGE resources: limits: memory: SIZE
Substituir
- 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
. Se você usa o Artifact Registry, o repositório REPO_NAME já precisará ter sido criado. O URL tem o formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
- SIZE pelo tamanho de memória desejado.
O formato é um número de ponto fixo ou flutuante seguido de uma unidade:
G
ouM
correspondentes a gigabyte ou megabyte, respectivamente, ou usar a potência de dois equivalentes:Gi
ouMi
correspondente a gibibyte ou mebibyte, respectivamente. - 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
- Começa com
Crie ou atualize o serviç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_v2_service
em template.containers.resources.limits
na
configuração do Terraform. Substitua 512Mi
pelo limite de memória desejado do serviço.
Otimizar a memória para serviços
Para um serviço do Cloud Run, é possível determinar o requisito de pico de memória para um serviço usando o seguinte: (memória permanente) + (memória por solicitação) * (simultaneidade de serviço)
Portanto:
se você aumentar a simultaneidade do serviço, também precisará aumentar o limite de memória para contabilizar o pico de uso;
se você diminuir a simultaneidade do serviço, considere reduzir o limite de memória para economizar nos custos de uso dela.
Para mais orientações sobre como minimizar o uso de memória por solicitação, leia Dicas de desenvolvimento sobre variáveis globais.
Ver configurações de limite de memória
Para ver as configurações atuais de limite de memória do serviço do Cloud Run:
Console
No console do Google Cloud, acesse o Cloud Run:
Clique no serviço de seu interesse para abrir a página Detalhes do serviço.
Clique na guia Revisões.
No painel de detalhes à direita, a configuração do limite de memória está listada na guia Contêiner.
gcloud
Use o comando a seguir:
gcloud run services describe SERVICE
Localizar a configuração de limite de memória na configuração retornada.