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
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.
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.
Haz clic en la pestaña Contenedor.
- Selecciona el tamaño de memoria deseado de la lista desplegable Memoria asignada.
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.
Para ver y descargar la configuración, ejecuta el siguiente comando:
gcloud run services describe SERVICE --format export > service.yaml
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
oMi
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
- Comienza con
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.
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
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.
Haz clic en Contenedor, variables y secretos, conexiones y seguridad para expandir la página de propiedades del trabajo.
Haz clic en la pestaña Contenedor.
- Selecciona el tamaño de memoria deseado de la lista desplegable Memoria asignada.
Haz clic en Crear o Actualizar.
Línea de comandos
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
oM
, que corresponde a gigabytes o megabytes, respectivamente, o usa equivalentes a la potencia de dos:Gi
oMi
correspondientes a gibibyte o mebibyte, respectivamente.
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.
Para ver y descargar la configuración, ejecuta el siguiente comando:
gcloud run jobs describe JOB_NAME --format export > job.yaml
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
oM
correspondiente a gigabyte o megabyte, respectivamente, o usa la potencia de dos equivalentes:Gi
oMi
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.
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
Haz clic en el servicio que te interesa para abrir la página Detalles del servicio.
Haz clic en la pestaña Revisiones (Revisions).
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
Usa el siguiente comando:
gcloud run services describe SERVICE
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
Haz clic en el trabajo que te interesa para abrir la página Detalles del trabajo.
Haz clic en la pestaña Configuración.
Ubica la configuración del límite de memoria en los detalles de configuración.
Línea de comandos
Usa el siguiente comando:
gcloud run jobs describe JOB_NAME
Ubica la configuración del límite de memoria en la configuración que se muestra.