É possível escolher a quantidade de memória a ser fornecida para o serviço do Cloud Run. Esta página descreve 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, já que ele precisa ser carregado na memória.
- Alocar memória no processo do serviço.
- 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 é de 512 MiB, e a memória alocada para uma função é de 256 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 |
|---|---|
| .08 vCPU | Até 512 MiB |
| .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 é mais adequada para o recurso:
- Estabeleça uma configuração de linha de base inicial.
- Monitore as métricas de utilização de memória no Cloud Monitoring ao testar o sistema sob carga.
- Ajuste a configuração conforme necessário.
Se a utilização da memória for consistentemente baixa, considere reduzir a memória alocada. Se a latência for alta e a utilização da memória estiver próxima de 100%, considere aumentar a memória alocada. Se você estiver recebendo erros de falta de memória (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 a utilização 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 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 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 Google Cloud console, a linha de comando gcloud ou um arquivo YAML ao criar um novo serviço ou implantar um novo 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 e em Editar e implantar nova revisão.
Se você estiver configurando um novo serviço, preencha a página de configurações iniciais do serviço e clique em Contêineres, rede, segurança para expandir a página de configurações de serviço.
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
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. - 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 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. - SIZE: o tamanho da memória necessária.
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 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 umgoogle_cloud_run_v2_service
recurso 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 de 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: o URL da imagem do contêiner.
- CPU_VALUE: o limite de CPU necessário, por exemplo,
2. Esse valor determina a memória necessária.
Implantar os serviços
Para implantar os serviços, execute o comando
gcloud run compose up:gcloud run compose up compose.yamlResponda
ya todos os comandos para instalar os componentes necessários ou ativar as APIs.Opcional: torne seu serviço público se quiser permitir 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 visualizar o contêiner em execução. É possível desativar a autenticação padrão no Google Cloud console do.
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 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 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 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.