Puedes elegir la cantidad de memoria que quieras asignar a tu servicio de Cloud Run. En esta página se describe cómo especificar la cantidad de memoria disponible para tu servicio.
Información sobre el uso de memoria
Las instancias de Cloud Run que superen el límite de memoria permitido se terminarán.
La memoria disponible de tu instancia debe ser suficiente para lo siguiente:
- Ejecutar el archivo ejecutable del servicio, ya que debe cargarse en la memoria
- Asignar memoria en el proceso de tu servicio
- Escribir archivos en el sistema de archivos
El tamaño de la imagen de contenedor desplegada no afecta a la memoria disponible para la instancia.
Definir y actualizar límites de memoria
Puedes definir límites de memoria en los servicios de Cloud Run. De forma predeterminada, la memoria asignada a cada instancia de una revisión es de 512 MiB, y la memoria asignada a una función es de 256 MiB.
CPUs mínimas necesarias
La cantidad de memoria asignada que elijas se corresponde con una cantidad mínima de CPU para tu servicio. Cuando se establece un límite de memoria, se requieren los siguientes límites mínimos de CPU:
Memoria | CPUs mínimas necesarias |
---|---|
128 MiB | 0,083 vCPU |
256 MiB | 0,167 vCPU |
512 MiB | 0,333 vCPU |
1 GiB | 0,583 vCPU |
2 GiB | 1 vCPU |
Más de 4 GiB | 2 vCPUs |
Más de 8 GiB | 4 vCPUs |
Más de 16 GiB | 6 vCPUs |
Más de 24 GiB | 8 vCPUs |
Cantidad máxima de memoria
La cantidad máxima de memoria que puedes configurar es de 32 gibibytes (32 Gi
).
Memoria mínima
El ajuste de memoria mínimo varía en función de si usas el entorno de ejecución de primera generación o de segunda generación:
- 128 MiB para la primera generación
- 512 MiB para la segunda generación
Roles obligatorios
Para obtener los permisos que necesitas para configurar e implementar servicios de Cloud Run, pide a tu administrador que te conceda los siguientes roles de gestión de identidades y accesos:
-
Desarrollador de Cloud Run (
roles/run.developer
) en el servicio Cloud Run -
Usuario de cuenta de servicio (
roles/iam.serviceAccountUser
) en la identidad de servicio
Si vas a desplegar un servicio o una función a partir de código fuente, también debes tener otros roles concedidos en tu proyecto y en la cuenta de servicio de Cloud Build.
Para ver una lista de los roles y permisos de gestión de identidades y accesos asociados a Cloud Run, consulta los artículos sobre roles de gestión de identidades y accesos de Cloud Run y permisos de gestión de identidades y accesos de Cloud Run. Si tu servicio de Cloud Run interactúa con APIs, como las bibliotecas de cliente de Cloud, consulta la guía de configuración de la identidad del servicio.Google Cloud Para obtener más información sobre cómo conceder roles, consulta los artículos sobre permisos de implementación y gestión del acceso.
Configurar límites de memoria
Cualquier cambio en la configuración conlleva la creación de una nueva revisión. Las revisiones posteriores también recibirán automáticamente este ajuste de configuración, a menos que hagas cambios explícitos para modificarlo.
En los servicios de Cloud Run, puedes definir 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 o despliegas una revisión:
Consola
En la Google Cloud consola, ve a Cloud Run:
Seleccione Servicios en el menú y haga clic en Implementar contenedor para configurar un nuevo servicio. Si vas a configurar un servicio que ya tienes, haz clic en él y, a continuación, en Editar y desplegar nueva revisión.
Si vas a configurar un servicio nuevo, rellena la página de configuración inicial del servicio y, a continuación, haz clic en Contenedores, volúmenes, redes y seguridad para desplegar la página de configuración del servicio.
Haz clic en la pestaña Contenedor.
- Selecciona el tamaño de memoria que quieras en la lista desplegable Memoria.
Haz clic en Crear o en Implementar.
gcloud
Puedes actualizar la asignación de memoria de un servicio determinado con el siguiente comando:
gcloud run services update SERVICE --memory SIZE
Sustituye SERVICE por el nombre de tu servicio y SIZE por el tamaño de memoria que quieras. El formato del tamaño es un número entero o decimal seguido de una unidad: G
o M
, que corresponden a gigabytes o megabytes, respectivamente. También puedes usar los equivalentes en potencias de dos: Gi
o Mi
, que corresponden a gibibytes o mebibytes, respectivamente.
También puedes definir límites de memoria durante la implementación con el siguiente comando:
gcloud run deploy --image IMAGE_URL --memory SIZE
Haz los cambios siguientes:
- IMAGE_URL: una referencia a la imagen del contenedor, por ejemplo,
us-docker.pkg.dev/cloudrun/container/hello:latest
. Si usas Artifact Registry, el repositorio REPO_NAME ya debe estar creado. La URL sigue el formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
. - SIZE: los valores descritos anteriormente.
YAML
Si va a crear un servicio, puede saltarse este paso. Si va a actualizar un servicio, descargue su configuración YAML:
gcloud run services describe SERVICE --format export > service.yaml
Actualice 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
Haz los cambios siguientes:
- SERVICE: el nombre de tu servicio de Cloud Run.
- IMAGE_URL: una referencia a la imagen del contenedor, por ejemplo,
us-docker.pkg.dev/cloudrun/container/hello:latest
. Si usas Artifact Registry, el repositorio REPO_NAME ya debe estar creado. La URL sigue el formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
. - SIZE: tamaño de memoria deseado.
El formato es un número de punto fijo o flotante seguido de una unidad:
G
oM
, que corresponden a gigabytes o megabytes, respectivamente, o bien se pueden usar los equivalentes en potencias de dos:Gi
oMi
, que corresponden a gibibytes o mebibytes, respectivamente. - REVISION con un nuevo nombre de revisión o elimínelo (si está presente). Si proporcionas un nuevo nombre de revisión, debe cumplir los siguientes criterios:
- Empieza por
SERVICE-
- Contiene solo letras minúsculas, números y
-
- No termina con
-
- No supera los 63 caracteres
- Empieza por
Crea o actualiza el servicio con el siguiente comando:
gcloud run services replace service.yaml
Terraform
Para saber cómo aplicar o quitar una configuración de Terraform, consulta Comandos básicos de Terraform.
Añade lo siguiente a un recursogoogle_cloud_run_v2_service
en tu configuración de Terraform:En template.containers.resources.limits
, sustituye 512Mi
por el límite de memoria que quieras para tu servicio.
Optimizar la memoria para los servicios
En el caso de un servicio de Cloud Run, puedes determinar el requisito de memoria máximo de un servicio mediante la siguiente fórmula: (Memoria permanente) + (Memoria por solicitud) * (Simultaneidad del servicio)
Por lo tanto,
Si aumentas la simultaneidad de tu servicio, también deberías aumentar el límite de memoria para tener en cuenta el uso máximo.
Si reduces la simultaneidad de tu servicio, te recomendamos que disminuyas el límite de memoria para ahorrar en los costes de uso de memoria.
Para obtener más información sobre cómo minimizar el uso de memoria por solicitud, consulta los consejos de desarrollo sobre variables globales.
Ver los ajustes de límite de memoria
Para ver la configuración actual del límite de memoria de tu servicio de Cloud Run, haz lo siguiente:
Consola
En la Google Cloud consola, ve a Cloud Run:
Haz clic en el servicio que te interese para abrir la página Detalles del servicio.
Haz clic en la pestaña Revisiones.
En el panel de detalles de la derecha, el ajuste del límite de memoria se encuentra en la pestaña Contenedor.
gcloud
Usa el siguiente comando:
gcloud run services describe SERVICE
Busca el ajuste del límite de memoria en la configuración devuelta.