Configurar limites de memória para instâncias

É possível escolher a quantidade de memória a ser fornecida para a instância do Cloud Run. Nesta página, descrevemos como especificar a quantidade de memória disponível para a instância.

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 da instância, porque ele precisa ser carregado na memória.
  • Alocar memória no processo da instância.
  • 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 nas instâncias do Cloud Run. Por padrão, a memória alocada para cada instância é de 2 GiB .

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
1 vCPU 512 MiB a 4 GiB
2 vCPU 512 MiB a 8 GiB
4 vCPUs 2 a 16 GiB
6 vCPUs 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).

É possível aplicar um limite máximo de memória usando políticas personalizadas da organização.

Memória mínima

A configuração mínima de memória é de 512 MiB.

Considerações sobre o custo

O custo da instância 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 o recurso:

  1. Estabeleça uma configuração de linha de base inicial.
  2. Monitore as métricas de utilização de memória no Cloud Monitoring ao testar o sistema sob carga.
  3. Ajuste a configuração conforme necessário.

Se a utilização de memória for consistentemente baixa, considere reduzir a memória alocada. Se a latência for alta e a utilização de 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 instâncias do Cloud Run, peça ao administrador para conceder a você os seguintes papéis do IAM:

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 a instância 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.

É possível definir limites de memória para uma instância do Cloud Run usando a Google Cloud CLI ou o YAML:

gcloud

É possível atualizar a alocação de memória de uma determinada instância usando o comando a seguir:

gcloud beta run instances update INSTANCE --memory SIZE

Substitua:

  • INSTANCE: o nome da instância
  • SIZE: um tamanho de memória da tabela de CPU e memória. O formato do tamanho é um número de ponto fixo ou flutuante seguido por uma unidade: G ou M correspondente a gigabyte ou megabyte, respectivamente, ou usa a potência de dois equivalentes: Gi ou Mi correspondente a gibibyte ou mebibyte, respectivamente.

Também é possível definir limites de memória durante a implantação usando o comando:

gcloud beta run instances deploy --image IMAGE_URL --memory SIZE

Substitua:

  • IMAGE_URL: uma referência à imagem de contêiner, como us-docker.pkg.dev/cloudrun/container/hello:latest.
  • SIZE: um tamanho de memória da tabela de CPU e memória. 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.

YAML

  1. Se você estiver criando uma nova instância, pule esta etapa. Se você estiver atualizando uma instância existente, baixe a configuração YAML correspondente:

    gcloud beta run instances describe INSTANCE --format export > instance.yaml
  2. O exemplo a seguir contém a configuração YAML:

    apiVersion: run.googleapis.com/v1
    kind: Instance
    metadata:
      name: INSTANCE
      annotations:
        run.googleapis.com/launch-stage: BETA
    spec:
      containers:
      - image: IMAGE_URL
        resources:
          limits:
            memory: SIZE

    Substitua:

    • INSTANCE: o nome da instância do Cloud Run.
    • IMAGE_URL: uma referência à imagem de contêiner, como us-docker.pkg.dev/cloudrun/container/hello:latest.
    • SIZE: o tamanho de memória escolhido. O formato é 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.
  3. Crie ou atualize a instância usando o seguinte comando:

    gcloud beta run instances replace instance.yaml