En esta página, también se describe cómo habilitar o inhabilitar el aumento de CPU de inicio, una característica que aumenta de forma temporal la asignación de CPU virtuales durante el inicio de la instancia para reducir la latencia de inicio.
Configura y actualiza los límites de CPU virtuales
De forma predeterminada, cada instancia de contenedor está limitada a 1 CPU virtual. Puedes cambiarlo por cualquiera de los valores que se muestran en la siguiente tabla.
Tabla de CPU virtuales y memoria
A continuación, se describen los requisitos de memoria para las CPU virtuales:
| 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 |
Los valores superiores a 1 deben ser valores de número entero.
Cantidad máxima de CPU virtuales
La cantidad máxima de CPU virtuales que puedes configurar es 8.
Cantidad mínima de CPU virtuales
El parámetro de configuración mínimo de CPU virtuales es 0.08.
Si deseas usar menos de 1 CPU virtual, puedes seleccionar cualquier valor entre 0.08 y 1, en incrementos de 0.001.
Si usas menos de 1 CPU virtual, se aplican los siguientes requisitos:
| Configuración | Requisito |
|---|---|
| Memoria | Se necesita un mínimo de 0.5 CPU virtuales para establecer un límite de memoria superior a 512 MiB. Se necesita un mínimo de 1 CPU virtual para establecer un límite de memoria superior a 1 GiB. |
| Simultaneidad | La simultaneidad máxima debe configurarse en 1. |
| Facturación | La configuración de facturación debe establecerse en la facturación basada en solicitudes. |
| Entorno de ejecución | Debes usar el entorno de ejecución de primera generación. |
Consideraciones de costo
El costo de tu recurso de Cloud Run se ve afectado por su configuración de CPU y el tiempo que está activo, entre otros factores. Aprovisionar tus recursos en exceso puede aumentar tus costos. Para determinar qué configuración de CPU podría ser la mejor para tu recurso, haz lo siguiente:
- Establece una configuración de referencia inicial para un límite de CPU que equilibre el uso de CPU y los costos.
- Supervisa las métricas de uso de CPU en Cloud Monitoring mientras pruebas el sistema bajo carga.
- Ajusta la configuración de la CPU según sea necesario.
Si el uso de CPU es constantemente bajo con una carga máxima, considera reducir la asignación de vCPU. Si la latencia es alta, considera aumentar la asignación de CPU virtuales.
Puedes ver un resumen de los datos de costos, los datos de uso y las recomendaciones de optimización de costos para los recursos en la página de optimización de Cloud Hub. 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 los límites de CPU
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.
Puedes configurar límites de CPU 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 límite de CPU de la lista. Selecciona un valor de
1,2,4,6o8CPU, o de menos de 1 CPU, especifica un valor de 0.08 a menos de 1.00, en incrementos de 0.01. (Consulta la tabla en Configura y actualiza los límites de CPU para obtener la configuración necesaria).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 los límites de CPU para un servicio determinado mediante el siguiente comando:
gcloud run services update SERVICE --cpu CPU
Reemplaza lo siguiente:
- SERVICE: Es el nombre de tu servicio.
- CPU: Es el límite de CPU deseado. Especifica el valor
1,2,4,6o8CPU, o de menos de 1 CPU, especifica un valor de 0.08 a menos de 1.00, en incrementos de 0.01. (Consulta la tabla en Configura y actualiza los límites de CPU para obtener la configuración necesaria).
También puedes configurar el valor de durante la implementación mediante el siguiente comando:
gcloud run deploy --image IMAGE_URL --cpu CPU
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.- CPU: el valor
1,2,4,6o8CPU, o de menos de 1 CPU, especifica un valor de 0.08 a menos de 1.00, en incrementos de 0.01. (Consulta la tabla en Configura y actualiza los límites de CPU para obtener la configuración necesaria).
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
cpu:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: metadata: name: REVISION spec: containers: - image: IMAGE resources: limits: cpu: CPU
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.- CPU: el valor de límite de CPU deseado.
Especifica el valor
1,2,4,6o8CPU, o de menos de 1 CPU, especifica un valor de 0.08 a menos de 1.00, en incrementos de 0.01. (Consulta la tabla en Configura y actualiza los límites de CPU para obtener la configuración necesaria). 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:El recurso google_cloud_run_v2_service anterior especifica un límite de CPU
en template.containers.resources.limits.
Reemplaza 1 por el recuento de CPU deseado. Sugerencia: 1 corresponde a 1 CPU virtual.
Establece el aumento de CPU de inicio
La función de aumento de CPU de inicio para las revisiones proporciona CPU adicional durante el tiempo de inicio de la instancia y durante 10 segundos después de que se haya iniciado la instancia.
El aumento real de CPU varía según la configuración del límite de CPU:
| Límite de CPU | CPU aumentada |
|---|---|
| 0-1 | 2 |
| 2 | 4 |
| 4 | 3.6 |
| 6 | 8 |
| 8 | 8 |
Se te cobra por la CPU aumentada que se asignó mientras dure el tiempo de inicio del contenedor. Por ejemplo, si el tiempo de inicio del contenedor es de 15 segundos y asignas 2 CPU, con el aumento de CPU de inicio, se te cobrará por 4 CPU durante el tiempo de inicio de la instancia (posiblemente más corto), incluidos los 10 segundos después de que tu contenedor haya terminado de iniciarse, y por 2 CPU durante el resto del ciclo de vida del contenedor.
Si tu implementación de Cloud Run usa sidecars y habilitas el aumento de CPU de inicio, todos los contenedores recibirán el aumento de CPU. Cloud Run determina la cantidad de CPU potenciada para cada contenedor según el límite de CPU.
Puedes habilitar o inhabilitar el aumento de CPU de inicio con la consola de Google Cloud , Google Cloud CLI, un archivo YAML o un archivo de Terraform.
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.
Para habilitar el aumento de CPU de inicio, selecciona la casilla de verificación Aumento de CPU de inicio. Para inhabilitar esta función, quita la selección de la casilla de verificación.
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 habilitar el aumento de CPU de inicio para un servicio determinado con el siguiente comando:
gcloud run services update SERVICE --cpu-boost
SERVICE por el nombre del servicio
Puedes habilitar el aumento de CPU de inicio durante la implementación con el siguiente comando:
gcloud run deploy --image IMAGE_URL --cpu-boost
Reemplaza
IMAGE_URLpor una referencia a la imagen de contenedor, comous-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.Puedes inhabilitar el aumento de CPU de inicio para un servicio determinado con el siguiente comando:
gcloud run services update SERVICE --no-cpu-boost
SERVICE por el nombre del servicio
Puedes inhabilitar el aumento de CPU de inicio durante la implementación con el siguiente comando:
gcloud run deploy --image IMAGE_URL --no-cpu-boost
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
run.googleapis.com/startup-cpu-boosty especifica'true'a fin de habilitar el aumento de CPU de inicio o'false'para inhabilitarlo:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: metadata: annotations: run.googleapis.com/startup-cpu-boost: 'true'
Reemplaza SERVICE por el nombre de tu servicio de Cloud Run.
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:resource "google_cloud_run_v2_service" "default" {
name = "SERVICE"
location = "REGION"
template {
containers {
image = "us-docker.pkg.dev/cloudrun/container/hello"
resources {
startup_cpu_boost = CPU_BOOST
}
}
}
}
Reemplaza lo siguiente:
- SERVICE: el nombre de tu servicio de Cloud Run.
- REGION: la región de Google Cloud , por ejemplo,
europe-west1. - CPU_BOOST:
truepara habilitar el aumento de CPU de inicio ofalsepara inhabilitarlo.
Redactar
Para especificar los límites de CPU en tu archivo compose.yaml, agrega el atributo cpus
a la definición del servicio.
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.
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 .
Visualiza la configuración de CPU
Para ver la configuración actual de la CPU 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
Busca la configuración de CPU en la configuración mostrada.
Subprocesos de la aplicación y uso de CPU
Cuando selecciones un límite de CPU superior a 1 CPU virtual, considera el modelo de subprocesos de tu aplicación. Cuando se realiza el ajuste de escala automático, Cloud Run usa el uso de CPU promedio en todas las CPUs asignadas. Si tu aplicación tiene un solo subproceso, es posible que solo use un núcleo por completo, lo que genera un uso promedio de CPU bajo, incluso con carga. Esto puede evitar que el ajuste de escala automático basado en la CPU se produzca como se espera.
Para evitar este comportamiento en una aplicación de un solo subproceso, si tus requisitos de memoria lo permiten, te recomendamos que comiences con 1 CPU virtual. Esto genera un mejor ajuste de escala automático basado en la CPU. Si las necesidades de memoria más altas obligan a seleccionar varias CPU para una aplicación de un solo subproceso, considera ajustar tu configuración de simultaneidad.