Puedes elegir la cantidad de memoria que se proporcionará para tu servicio de Cloud Run. En esta página, se describe cómo especificar la cantidad de memoria disponible para tu servicio.
Comprende el uso de la memoria
Las instancias de Cloud Run que superan el límite de memoria permitido se finalizan.
La memoria disponible para tu instancia debe ser suficiente para lo siguiente:
- Ejecutar el ejecutable del servicio, ya que este debe cargarse en la memoria
- Asigna memoria en el proceso de tu servicio
- Escribe archivos en el sistema de archivos
El tamaño de la imagen de contenedor implementada no afecta la memoria disponible para la instancia.
Configura y actualiza los límites de memoria
Puedes establecer límites de memoria en los servicios de Cloud Run. De forma predeterminada, la asignación de memoria a cada instancia de una revisión es de 512 MiB .
Memoria requerida cuando se establece un valor de CPU
Cuando se establece un valor de CPU, se requiere la siguiente memoria:
| CPU | Memoria requerida |
|---|---|
| 0.08 de CPU virtual | Hasta 512 MiB |
| 0.5 de CPU virtual | Hasta 1 GiB |
| 1 CPU virtual | Hasta 4 GiB |
| 2 CPU virtuales | Hasta 8 GiB |
| 4 CPU virtuales | De 2 a 16 GiB |
| 6 vCPU | De 4 a 24 GiB |
| 8 CPU virtuales | De 4 a 32 GiB |
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
Consideraciones de costo
El costo de tu servicio de Cloud Run se ve afectado por su configuración de memoria y el tiempo que el recurso está activo, entre otros factores. Aprovisionar tus recursos en exceso puede aumentar tus costos. Para determinar qué configuración de memoria podría ser la mejor para tu recurso, haz lo siguiente:
- Establece una configuración de referencia inicial.
- Supervisa tus métricas de uso de memoria en Cloud Monitoring mientras pruebas el sistema bajo carga.
- Ajusta la configuración según sea necesario.
Si el uso de memoria es constantemente bajo, considera reducir la memoria asignada. Si la latencia es alta y el uso de memoria se acerca al 100%, considera aumentar la memoria asignada. Si experimentas errores de memoria insuficiente (OOM), debes aumentar la memoria asignada o modificar tu aplicación para evitar fugas de memoria y usar menos memoria. Consulta el panel de Cloud Monitoring para comprender mejor tu uso de memoria.
Revisa los precios de Cloud Run o calcula los costos con la calculadora de precios para obtener más información.
Roles obligatorios
Para obtener los permisos que necesitas para configurar y, luego, implementar los servicios de Cloud Run, pídele a tu administrador que te otorgue los siguientes roles de IAM:
- Desarrollador de Cloud Run (
roles/run.developer) en el servicio de Cloud Run - Usuario de la cuenta de servicio (
roles/iam.serviceAccountUser) en la identidad del servicio
Si implementas un servicio o una función desde el código fuente, también debes tener roles adicionales otorgados en tu proyecto y en la cuenta de servicio de Cloud Build.
Para obtener una lista de los roles y los permisos de IAM asociados con Cloud Run, consulta los roles de IAM de Cloud Run y los permisos de IAM de Cloud Run. Si tu servicio de Cloud Run interactúa con las APIs deGoogle Cloud , como las bibliotecas cliente de Cloud, consulta la guía de configuración de identidades del servicio. Para obtener más información sobre cómo otorgar roles, consulta los permisos de implementación y cómo administrar el acceso.
Configura 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.
En el caso de los servicios de Cloud Run, puedes establecer límites de memoria con 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
En la consola Google Cloud , ve a Cloud Run:
Selecciona Servicios en el menú de navegación de Cloud Run:
Si configuras un servicio nuevo, haz clic en Implementar contenedor y completa la página de configuración inicial del servicio. Luego, haz clic en Contenedores, Herramientas de redes, Seguridad para expandir la página de configuración del servicio.
Si quieres configurar un servicio existente, haz clic en él.
Haz clic en la pestaña Contenedores.
Selecciona el tamaño de memoria en la lista Memoria.
Haz clic en Crear para un servicio nuevo. Haz clic en Ver diferencia y volver a implementar y, luego, en Implementar cambios para un servicio existente.
gcloud
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 lo siguiente:
IMAGE_URL: una referencia a la imagen de contenedor, por ejemplo,us-docker.pkg.dev/cloudrun/container/hello:latest. Si usas Artifact Registry, el repositorio REPO_NAME debe estar creado. La URL sigue el formato deLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.- SIZE: Son los valores descritos anteriormente.
YAML
Si creas un servicio nuevo, omite este paso. Si actualizas un servicio existente, descarga su configuración de YAML:
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
Reemplaza lo siguiente:
- SERVICE: el nombre de tu servicio de Cloud Run.
IMAGE_URL: una referencia a la imagen de contenedor, por ejemplo,us-docker.pkg.dev/cloudrun/container/hello:latest. Si usas Artifact Registry, el repositorio REPO_NAME debe estar creado. La URL sigue el formato deLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.- SIZE: el tamaño de memoria necesario.
El formato es un número fijo o de punto flotante seguido de una unidad:
GoMcorrespondiente a gigabyte o megabyte, respectivamente, o usa la potencia de dos equivalentes:GioMique corresponde a gibibyte o mebibyte, respectivamente. REVISION: 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
Crea o actualiza el servicio con el siguiente comando:
gcloud run services replace service.yaml
El comando
gcloud run services replaceusa el archivoservice.yamlde forma predeterminada si está presente.
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 recursogoogle_cloud_run_v2_service
en tu configuración de Terraform:En template.containers.resources.limits, reemplaza 512Mi por el límite de memoria que necesita tu servicio.
Redactar
Para especificar sugerencias de CPU y memoria en tu archivo compose.yaml, agrega el
atributo cpus a la definición del servicio. Cloud Run
asigna de forma automática la memoria requerida cuando se establece un valor de CPU.
services: web: image: IMAGE cpus: CPU_VALUE
Reemplaza lo siguiente:
- IMAGE por la URL de la imagen de contenedor.
- CPU_VALUE: el límite de CPU necesario, por ejemplo,
2. Este valor determina la memoria requerida.
Implementa los servicios
Para implementar los servicios, ejecuta el comando
gcloud run compose up:gcloud run compose up compose.yamlResponde
ya cualquier mensaje para instalar los componentes necesarios o habilitar las APIs.Opcional: Haz que tu servicio sea público si deseas permitir el acceso sin autenticación.
Después de la implementación, se muestra la URL del servicio de Cloud Run. Copia esta URL y pégala en tu navegador para ver el contenedor en ejecución. Puedes inhabilitar la autenticación predeterminada desde la consola de Google Cloud .
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
En la consola de Google Cloud , ve a la página Servicios de Cloud Run:
Haz clic en el servicio que te interesa para abrir la página Detalles del servicio.
Haz clic en la pestaña Contenedores para ver la configuración.
gcloud
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.