Configurar limites de memória para jobs

Você pode escolher a quantidade de memória a ser fornecida para o job do Cloud Run. Nesta página, descrevemos como especificar a quantidade de memória disponível para seu job.

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 sua instância precisa ser suficiente para:

  • Executar o executável do job, porque ele precisa ser carregado na memória.
  • Alocar memória no processo de job
  • 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 em jobs do Cloud Run. Por padrão, a memória alocada para cada job é , e a memória alocada para uma função é 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
1 vCPU 512 MiB a 4 GiB
2 vCPU 512 MiB a 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 é de 512 MiB.

Considerações sobre o custo

O custo do seu job do Cloud Run é afetado pela configuração de memória e pelo tempo de atividade do recurso, entre outros fatores. O superprovisionamento de recursos pode aumentar seus custos. Para determinar qual configuração de memória é a melhor para seu recurso:

  1. Estabeleça uma configuração de linha de base inicial.
  2. Monitore as métricas de utilização da memória no Cloud Monitoring enquanto testa o sistema sob carga.
  3. 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 enfrentando 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 calcule os custos com a calculadora de preços para mais informações.

Funções exigidas

Para receber as permissões necessárias para configurar jobs 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 o job do Cloud Run interagir com 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

Especifique um mínimo de 512 Mi para um job do Cloud Run.

É possível configurar limites de memória para um job do Cloud Run usando o consoleGoogle Cloud , a CLI gcloud, o YAML ou o Terraform:

Console

  1. No console Google Cloud , acesse a página do Cloud Run:

    Acessar o Cloud Run

  2. Selecione Jobs no menu de navegação do Cloud Run:

    1. Se você estiver criando um job, clique em Implantar contêiner para preencher a página inicial de configurações do job.

    2. Se você estiver configurando um job, selecione-o e clique em Ver e editar a configuração do job.

  3. Clique em Contêineres, conexões, segurança para expandir a página de propriedades do job.

  4. Na guia Contêineres, selecione o tamanho de memória na lista Memória.

  5. Clique em Criar ou Atualizar.

gcloud

  • Para definir limites de memória ao criar um job, execute o seguinte comando:

    gcloud run jobs create JOB --image IMAGE_URL --memory SIZE

    Substitua:

    • JOB: o nome do seu job do Cloud Run;
    • IMAGE_URL: uma referência à imagem do contêiner. Por exemplo, us-docker.pkg.dev/cloudrun/container/job:latest.
    • SIZE: o tamanho da 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.
  • Para definir limites de memória ao atualizar um job, execute o comando a seguir:

    gcloud run jobs update JOB --memory SIZE

YAML

  1. 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 jobs describe JOB --format export > job.yaml
  2. Atualize o atributo memory:

    apiVersion: run.googleapis.com/v1
    kind: Job
    metadata:
      name: JOB
    spec:
      template:
        spec:
          template:
            spec:
              containers:
              - image: IMAGE_URL
                resources:
                  limits:
                    memory: SIZE

    Substitua:

    • JOB: o nome do seu job do Cloud Run;
    • IMAGE_URL: uma referência à imagem do contêiner. Por exemplo, us-docker.pkg.dev/cloudrun/container/job:latest.
    • SIZE: o tamanho da memória, especificando um mínimo de 512 Mi. O formato é um número de ponto fixo ou flutuante seguido por uma unidade: G ou M, correspondente a gigabyte ou megabyte, respectivamente, ou usar a potência de dois equivalentes: Gi ou Mi, correspondente a gibibyte ou mebibyte, respectivamente.

    Também é possível definir outras configurações, como variáveis de ambiente ou limites de memória.

  3. Crie ou atualize o serviço usando o seguinte comando:

    gcloud run jobs replace job.yaml

    Por padrão, o comando gcloud run jobs replace usa o arquivo job.yaml, 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 recurso google_cloud_run_v2_job na configuração do Terraform:
resource "google_cloud_run_v2_job" "default" {
  name     = "JOB"
  location = "REGION"
  deletion_protection = false

  template {
    template {
      containers {
        image = "us-docker.pkg.dev/cloudrun/container/job"
        resources {
          limits = {
            cpu    = "2"
            memory = "SIZE"
          }
        }
      }
    }
  }
}

Substitua:

  • JOB: o nome do seu job do Cloud Run;
  • REGION: a Google Cloud região. Por exemplo, europe-west1.
  • SIZE: o tamanho de memória necessário, especificando um mínimo de 512 Mi. O formato é um número de ponto fixo ou flutuante seguido por uma unidade, G ou M, correspondente a gigabyte ou megabyte, respectivamente, ou usar a potência de dois equivalentes, Gi ou Mi, correspondente a gibibyte ou mebibyte, respectivamente.

Ver configurações de limite de memória

Para conferir as configurações atuais de limite de memória do seu job do Cloud Run, use o console Google Cloud ou a Google Cloud CLI:

Console

  1. No console do Google Cloud , acesse a página de jobs do Cloud Run:

    Acessar jobs do Cloud Run

  2. Clique no job para abrir a página Detalhes do job.

  3. Clique em Ver e editar a configuração do job.

  4. Localize a definição do limite de memória nos detalhes da configuração.

gcloud

  1. Execute este comando:

    gcloud run jobs describe JOB
  2. Localizar a configuração de limite de memória na configuração retornada.