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 contenedor de Cloud Run que superan el límite de memoria permitido se finalizan.

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

  • 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 para la cantidad de memoria disponible.

Configura y actualiza los límites de memoria

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.

De forma predeterminada, la memoria asignada a cada instancia de contenedor de una revisión es de 512 MiB.

Se requiere un mínimo de 2 CPU virtuales para establecer un límite de memoria superior a 4 GiB.

Puedes configurar límites de memoria mediante Cloud Console, 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 Editar e implementar nueva revisión.

  3. Si estás configurando un servicio nuevo, llena la página de configuración inicial del servicio como desees y haz clic en Siguiente > Configuración avanzada para acceder a la página de configuración del servicio.

  4. Haz clic en la pestaña Contenedor.

    image

  5. Selecciona el tamaño de memoria deseado de la lista desplegable Memory allocated (Memoria asignada).

  6. 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
  • SIZE por los valores que se describieron antes

YAML

Puedes descargar y ver la configuración 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:
        spec:
          containers:
          - image: IMAGE
            resources:
              limits:
                memory: SIZE

    Reemplaza los siguientes elementos:

    • SERVICE por el nombre del servicio de Cloud Run
    • IMAGE por la URL de la imagen de contenedor
    • 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.
  3. Reemplaza el servicio por la configuración nueva mediante el comando siguiente:

    gcloud run services replace service.yaml

Cantidad máxima de memoria

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

Optimiza la memoria

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 Sugerencias de desarrollo sobre variables globales.

Visualizar la configuración del límite de memoria

Para ver la configuración actual del límite de memoria de tu servicio, 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.