É possível escolher a quantidade de memória a ser fornecida para o serviço do Cloud Run. Nesta página, descrevemos como especificar a quantidade de memória disponível para o serviço.
Entender o uso da memória
As instâncias do Cloud Run que excedem o limite de memória permitido são encerradas.
A memória disponível para a instância precisa ser suficiente para:
- Executar o executável do serviço, porque ele precisa ser carregado na memória.
- Alocação de memória no processo de serviço
- Como gravar arquivos no sistema de arquivos
O tamanho da imagem do contêiner implantada não afeta a memória disponível para a instância.
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 .
Memória necessária ao definir um valor de CPU
Ao definir um valor de CPU, a seguinte memória é necessária:
| 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 vCPU | 4 a 24 GiB |
| 8 vCPUs | 4 a 32 GiB |
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
Considerações sobre o custo
O custo do serviço do Cloud Run é afetado pela configuração de memória 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 memória é melhor para seu recurso:
- Estabeleça uma configuração de referência inicial.
- Monitore as métricas de uso da memória no Cloud Monitoring enquanto testa o sistema sob carga.
- Ajuste a configuração conforme necessário.
Se o uso da memória for consistentemente baixo, considere reduzir a memória alocada. Se a latência for alta e o uso da memória estiver próximo de 100%, considere aumentar a memória alocada. Se você estiver enfrentando erros de memória insuficiente (OOM), aumente a memória alocada ou modifique o aplicativo para evitar vazamentos de memória e usar menos memória. Consulte o painel do Cloud Monitoring para entender melhor o uso da memória.
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 uma função do código-fonte, 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 as APIs doGoogle 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 uma nova revisão:
Console
No console do Google Cloud , acesse o Cloud Run:
Selecione Serviços no menu de navegação do Cloud Run:
Se você estiver configurando um novo serviço, clique em Implantar contêiner e preencha a página de configurações de serviço inicial. Em seguida, clique em Contêineres, rede, segurança para expandir a página de configurações de serviço.
Se você estiver configurando um serviço atual, clique nele.
Clique na guia Contêineres.
Selecione o tamanho da memória na lista Memória.
Clique em Criar para um novo serviço. Clique em Visualizar as diferenças e reimplantar e em Implantar mudanças para um serviço atual.
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
Substitua:
IMAGE_URL: uma referência à imagem do 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.- SIZE: os valores descritos anteriormente.
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
Substitua:
- SERVICE: o nome do seu serviço do Cloud Run.
IMAGE_URL: uma referência à imagem do 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.- SIZE: o tamanho de memória necessário.
O formato é um número de ponto fixo ou flutuante seguido de uma unidade:
GouMcorrespondentes a gigabyte ou megabyte, respectivamente, ou usar a potência de dois equivalentes:GiouMicorrespondente a gibibyte ou mebibyte, respectivamente. REVISION: um novo nome de revisão ou exclua-o (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
O comando
gcloud run services replaceusa o arquivoservice.yamlpor padrão, se ele estiver presente.
Terraform
Para saber como aplicar ou remover uma configuração do Terraform, consulte Comandos básicos do Terraform.
Adicione o seguinte a um recursogoogle_cloud_run_v2_service
na configuração do Terraform:Em template.containers.resources.limits, substitua 512Mi pelo limite de memória necessário do serviço.
Escrever
Para especificar dicas de CPU e memória no arquivo compose.yaml, adicione o
atributo cpus à definição do serviço. O Cloud Run
aloca automaticamente a memória necessária ao definir um valor de CPU.
services: web: image: IMAGE cpus: CPU_VALUE
Substitua:
- IMAGE pelo URL da imagem de contêiner.
- CPU_VALUE: o limite de CPU necessário, por exemplo,
2. Esse valor determina a memória necessária.
Implante 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 é exibido. Copie esse URL e cole-o no navegador para ver o contêiner em execução. É possível desativar a autenticação padrão no console do Google Cloud .
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 da memória.
Para mais orientações sobre como minimizar o uso da 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 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 Contêineres para ver as configurações.
gcloud
Use o comando a seguir:
gcloud run services describe SERVICE
Localizar a configuração de limite de memória na configuração retornada.