Configurar limites de memória para jobs

É possível 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 o 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 a 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 do job
  • 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 em jobs do Cloud Run. Por padrão, a alocação de memória para cada job é de 512 MiB, e a alocação de memória 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
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 job do Cloud Run é afetado pela configuração de memória e pelo tempo em que o recurso fica ativo, entre outros fatores. O provisionamento excessivo de recursos pode aumentar os custos. Para determinar qual configuração de memória é melhor para seu recurso:

  1. Estabeleça uma configuração de referência inicial.
  2. Monitore as métricas de uso da memória no Cloud Monitoring enquanto testa o sistema sob carga.
  3. 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 os 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 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 console doGoogle Cloud , a CLI gcloud, o YAML ou o Terraform:

Console

  1. No console do 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 novo 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 Exibir 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 da memória na lista Memória.

  5. Clique em Criar ou Atualizar.

gcloud

  • Para definir limites de memória ao criar um novo 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 seguinte comando:

    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

    O comando gcloud run jobs replace usa o arquivo job.yaml por 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 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 região do Google Cloud . 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 ver as configurações de limite de memória atuais do seu job do Cloud Run, use o console do 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 Exibir 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.