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 está limitada a 1 CPU virtual. Puedes cambiar esto a 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 |
|---|---|
| .08 CPU virtual | Hasta 512 MiB |
| .5 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 CPU virtuales | De 4 a 24 GiB |
| 8 CPU virtuales | De 4 a 32 GiB |
Los valores superiores a 1 deben ser números enteros.
Cantidad máxima de CPU virtuales
La cantidad máxima de CPU virtuales que puedes configurar es de 8 CPU virtuales.
Cantidad mínima de CPU virtuales
El parámetro de configuración mínimo de CPU virtuales es de 0.08 CPU virtuales.
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 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. El aprovisionamiento excesivo de tus recursos puede aumentar tus costos. Para determinar qué configuración de CPU podría ser mejor para tu recurso, haz lo siguiente:
- Establece una configuración inicial de referencia para un límite de CPU que equilibre el uso y los costos de la CPU.
- Supervisa las métricas de uso de la 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 la CPU es constantemente bajo bajo carga máxima, considera reducir la asignación de CPU virtuales. Si la latencia es alta, considera aumentar la asignación de CPU virtuales.
Puedes ver datos de costos resumidos, datos de uso y recomendaciones de optimización de costos para los recursos en la página Optimización de Cloud Hub. Revisa los precios de Cloud Run o estima 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 Google Cloud las APIs, 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 permisos de implementación y administra 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 mediante la Google Cloud consola, 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 y haz clic en Implementar contenedor para configurar un servicio nuevo. Si estás configurando un servicio existente, haz clic en el servicio.
Si configuras un servicio nuevo, completa la página de configuración del servicio inicial como desees y haz clic en Contenedores, herramientas de redes, seguridad para expandir la página de configuración del servicio.
Haz clic en la pestaña Contenedores.
Selecciona el límite de CPU que desees de la lista desplegable, con Personalizado si deseas usar menos de 1 CPU. 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 o Implementar.
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: el nombre del servicio
- CPU: 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 CPU 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 del contenedor, comous-docker.pkg.dev/cloudrun/container/hello:latestSi 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 del servicio de Cloud Run
IMAGE_URL: una referencia a la imagen del contenedor, comous-docker.pkg.dev/cloudrun/container/hello:latestSi 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 de forma predeterminada el archivoservice.yamlsi 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 ungoogle_cloud_run_v2_service
recurso en la 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 la CPU de inicio
La función de aumento de la 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 aumentada para cada contenedor según el límite de CPU.
Puedes habilitar o inhabilitar el aumento de CPU de inicio con la Google Cloud consola, 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 y haz clic en Implementar contenedor para configurar un servicio nuevo. Si estás configurando un servicio existente, haz clic en el servicio.
Si configuras un servicio nuevo, completa la página de configuración del servicio inicial como desees y haz clic en Contenedores, herramientas de redes, seguridad para expandir la página de configuración del servicio.
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 o Implementar.
gcloud
Puedes habilitar el aumento de la CPU de inicio para un servicio determinado con el siguiente comando:
gcloud run services update SERVICE --cpu-boost
Reemplaza SERVICE por el nombre del servicio
Puedes habilitar el aumento de la CPU de inicio durante la implementación mediante 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 la CPU de inicio para un servicio determinado mediante el siguiente comando:
gcloud run services update SERVICE --no-cpu-boost
Reemplaza SERVICE por el nombre del servicio
Puedes inhabilitar el aumento de la CPU de inicio durante la implementación mediante 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'para 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 de forma predeterminada el archivoservice.yamlsi 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 ungoogle_cloud_run_v2_service
recurso en la 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 del servicio de Cloud Run
- REGION: la Google Cloud región, 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: 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 solicitud para instalar los componentes obligatorios 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 Google Cloud consola.
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 Google Cloud consola, 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 Historial de revisión.
En el panel de detalles a la derecha, la configuración de CPU aparece en la pestaña Contenedores.
gcloud
Usa el siguiente comando:
gcloud run services describe SERVICE
Busca la configuración de CPU en la configuración mostrada.
Subprocesos de aplicaciones 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 promedio de la CPU en todas las CPUs asignadas. Si tu aplicación es de un solo subproceso, es posible que solo utilice por completo un núcleo, lo que genera un uso promedio bajo de la CPU, incluso bajo 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 fuerzan una selección de varias CPUs para una aplicación de un solo subproceso, considera ajustar la configuración de simultaneidad.