Configura límites de memoria

En esta página, se describe cómo establecer límites de memoria.

Información sobre el uso de memoria

Las instancias de Cloud Run que superan el límite de memoria permitido se finalizan.

Las siguientes acciones se consideran en la cantidad de memoria disponible de la instancia:

  • Ejecutar el ejecutable de la aplicación (ya que este debe cargarse en la memoria)
  • Asignar memoria en el proceso de la aplicación
  • Escribir archivos en el sistema de archivos

El tamaño de la imagen de contenedor implementada no se considera en la cantidad de memoria disponible.

Configura y actualiza los límites de memoria

Puedes establecer límites de memoria en los servicios y trabajos de Cloud Run. De forma predeterminada, la memoria asignada a cada instancia de una revisión o trabajo es de 512 MiB.

CPU mínima requerida

Cuando se establece un límite de memoria, se requieren los siguientes límites mínimos de CPU:

Memoria Cantidad mínima de CPU necesarias
Más de 4 GiB 2
Más de 8 GiB 4
Más de 16 GiB 6
Más de 24 GiB 8

Cantidad máxima de memoria

La cantidad máxima de memoria que puedes configurar es de 32 gibibyte (32 Gi).

Memoria mínima

El parámetro de configuración de memoria mínima varía según si usas el entorno de ejecución de primera generación o segunda generación:

  • 128 MiB para la primera generación
  • 512 MiB para la segunda generación

Para servicios de Cloud Run

Cualquier cambio en la configuración conlleva la creación de una revisión nueva. Las revisiones posteriores también adoptarán esta configuración de manera automática, a menos que realices actualizaciones explícitas para cambiarla.

En el caso de los servicios de Cloud Run, puedes establecer límites de memoria mediante la consola de Google Cloud, la línea de comandos de gcloud o un archivo YAML cuando creas un servicio nuevo o implementas una revisión nueva:

Console

  1. Ir a Cloud Run

  2. Haz clic en Crear servicio si quieres configurar un servicio nuevo en el que realizarás la implementación. Si quieres configurar un servicio existente, haz clic en el servicio y, luego, en Edit and Deploy New Revision.

  3. Si configuras un servicio nuevo, completa la página de configuración del servicio inicial como desees y haz clic en Contenedor, herramientas de redes, seguridad para expandir la página de configuración del servicio.

  4. Haz clic en la pestaña Contenedor.

    imagen

    • Selecciona el tamaño de memoria deseado de la lista desplegable Memoria asignada.
  5. Haz clic en Crear o Implementar.

Línea de comandos

Puedes actualizar la asignación de memoria de un servicio determinado mediante el siguiente comando:

gcloud run services update SERVICE --memory SIZE

Reemplaza SERVICE por el nombre de tu servicio y SIZE por el tamaño de memoria deseado. El formato del tamaño es un número de punto fijo o flotante seguido de una unidad: G o M, que corresponde a gigabytes o megabytes, respectivamente, o usa equivalentes a la potencia de dos: Gi o Mi correspondientes a gibibyte o mebibyte, respectivamente.

También puedes establecer límites de memoria durante la implementación mediante el siguiente comando:

gcloud run deploy --image IMAGE_URL --memory SIZE

Reemplaza los siguientes elementos:

  • IMAGE_URL por una referencia a la imagen del contenedor, como us-docker.pkg.dev/cloudrun/container/hello:latest Cuando se usa Artifact Registry, la URL tiene el siguiente formato: REGION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG. .
  • SIZE por los valores que se describieron antes

YAML

Puedes descargar y ver las configuraciones del servicio existente mediante el comando gcloud run services describe --format export, que genera resultados limpios en formato YAML. Luego, puedes modificar los campos que se describen a continuación y subir el YAML modificado mediante el comando gcloud run services replace. Asegúrate de modificar los campos tal como se indica en la documentación.

  1. Para ver y descargar la configuración, ejecuta el siguiente comando:

    gcloud run services describe SERVICE --format export > service.yaml
  2. Actualiza el 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

    Reemplazar

    • SERVICE por el nombre del servicio de Cloud Run
    • IMAGE_URL por una referencia a la imagen del contenedor, como us-docker.pkg.dev/cloudrun/container/hello:latest Cuando se usa Artifact Registry, la URL tiene el siguiente formato: REGION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
    • SIZE por el tamaño de memoria deseado El formato es un número fijo o de punto flotante seguido de una unidad: G oM correspondiente a gigabyte o megabyte, respectivamente, o usa la potencia de dos equivalentes: Gi o Mi que corresponde a gibibyte o mebibyte, respectivamente.
    • REVISION por un nombre de revisión nuevo o bórralo (si está presente). Si proporcionas un nuevo nombre de revisión, debe cumplir con los siguientes criterios:
      • Comienza con SERVICE-
      • Solo contiene letras minúsculas, números y -
      • No termina con -
      • No supera los 63 caracteres
  3. Reemplaza el servicio por la configuración nueva mediante el comando siguiente:

    gcloud run services replace service.yaml

Terraform

Si deseas obtener más información para aplicar o quitar una configuración de Terraform, consulta los comandos básicos de Terraform.

Agrega lo siguiente a un recurso google_cloud_run_service en la configuración de Terraform, en template.spec.containers. Reemplaza 512Mi por el límite de memoria que deseas para tu servicio.

resources {
  limits = {
    # CPU usage limit
    # https://cloud.google.com/run/docs/configuring/cpu
    cpu = "1000m" # 1 vCPU

    # Memory usage limit (per container)
    # https://cloud.google.com/run/docs/configuring/memory-limits
    memory = "512Mi"
  }
}

Para trabajos de Cloud Run

Debes especificar un mínimo de 512 Mi para un trabajo de Cloud Run. Para especificar la memoria de un trabajo de Cloud Run, sigue estos pasos:

Console

  1. Ir a Cloud Run

  2. Si quieres configurar un nuevo trabajo, haz clic en la pestaña Trabajos y completa la página de configuración de trabajo inicial como desees. Si quieres configurar un trabajo existente, haz clic en el trabajo y, luego, en Editar.

  3. Haz clic en Contenedor, variables y secretos, conexiones y seguridad para expandir la página de propiedades del trabajo.

  4. Haz clic en la pestaña Contenedor.

    imagen

    • Selecciona el tamaño de memoria deseado de la lista desplegable Memoria asignada.
  5. Haz clic en Crear o Actualizar.

Línea de comandos

  1. Para establecer límites de memoria cuando creas un trabajo, haz lo siguiente:

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

    Reemplazar

    • JOB_NAME por el nombre de tu trabajo.
    • IMAGE_URL por una referencia a la imagen del contenedor, como us-docker.pkg.dev/cloudrun/container/job:latest
    • SIZE por el tamaño de memoria deseado El formato del tamaño es un número de punto fijo o flotante seguido de una unidad: G o M, que corresponde a gigabytes o megabytes, respectivamente, o usa equivalentes a la potencia de dos: Gi o Mi correspondientes a gibibyte o mebibyte, respectivamente.
  2. Para establecer límites de memoria cuando actualizas un trabajo, haz lo siguiente:

    gcloud run jobs update JOB_NAME --memory SIZE

YAML

Descarga y visualiza la configuración del trabajo existente mediante el comando gcloud run jobs describe --format export, que genera resultados limpios en formato YAML. Luego, modifica los campos que se describen a continuación y sube el YAML modificado mediante el comando gcloud run jobs replace. Asegúrate de modificar los campos tal como se indica en la documentación.

  1. Para ver y descargar la configuración, ejecuta el siguiente comando:

    gcloud run jobs describe JOB_NAME --format export > job.yaml
  2. Actualiza el atributo memory:

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

    Reemplaza SIZE por el tamaño de memoria deseado y especifica un mínimo de 512 Mi. El formato es un número fijo o de punto flotante seguido de una unidad: G o M correspondiente a gigabyte o megabyte, respectivamente, o usa la potencia de dos equivalentes: Gi o Mi que corresponde a gibibyte o mebibyte, respectivamente.

    También puedes especificar más opciones de configuración, como variables de entorno o límites de memoria.

  3. Actualiza la configuración del trabajo existente:

    gcloud run jobs replace job.yaml

Optimiza la memoria para los servicios

Para un servicio de Cloud Run, puedes determinar el requisito de memoria máxima de un servicio de la siguiente manera: (memoria permanente) + (memoria por solicitud) * (simultaneidad de servicio)

Por lo tanto:

  • Si aumentas la simultaneidad de tu servicio, también debes aumentar el límite de memoria para respetar el uso máximo.

  • Si disminuyes la simultaneidad de tu servicio, considera reducir el límite de memoria para ahorrar en costos de uso de memoria.

Para obtener más información sobre cómo minimizar el uso de memoria por solicitud, consulta las sugerencias de desarrollo sobre variables globales.

Visualiza la configuración del límite de memoria

Para ver la configuración actual del límite de memoria de tu servicio de Cloud Run, sigue estos pasos:

Console

  1. Ir a Cloud Run

  2. Haz clic en el servicio que te interesa para abrir la página Detalles del servicio.

  3. Haz clic en la pestaña Revisiones (Revisions).

  4. En el panel de detalles a la derecha, la configuración del límite de memoria se muestra en la pestaña Contenedor.

Línea de comandos

  1. Usa el siguiente comando:

    gcloud run services describe SERVICE
  2. Ubica la configuración del límite de memoria en la configuración que se muestra.

Para ver la configuración actual del límite de memoria de tu trabajo de Cloud Run, sigue estos pasos:

Console

  1. Ir a Trabajos de Cloud Run

  2. Haz clic en el trabajo que te interesa para abrir la página Detalles del trabajo.

  3. Haz clic en la pestaña Configuración.

  4. Ubica la configuración del límite de memoria en los detalles de configuración.

Línea de comandos

  1. Usa el siguiente comando:

    gcloud run jobs describe JOB_NAME
  2. Ubica la configuración del límite de memoria en la configuración que se muestra.