Consulta cómo definir límites para la memoria que usan tus instancias de contenedor en Knative Serving.
Información sobre el uso de memoria
Las instancias de contenedor de Knative Serving que superen el límite de memoria permitido se terminarán.
Los siguientes elementos se tienen en cuenta para calcular la memoria disponible de la instancia de contenedor:
- Ejecutar el archivo ejecutable de la aplicación (ya que el archivo ejecutable debe cargarse en la memoria)
- Asignar memoria en el proceso de tu aplicación
- Escribir archivos en el sistema de archivos
El tamaño de la imagen de contenedor desplegada no se tiene en cuenta en la memoria disponible.
Cantidad máxima de memoria
La cantidad máxima de memoria que puedes configurar está limitada por la configuración de tu clúster de GKE.
Optimizar la memoria
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.
Definir y actualizar 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.
Puedes definir límites de memoria mediante la Google Cloud consola, la CLI de Google Cloud o un archivo YAML al desplegar un servicio nuevo o actualizar un servicio y desplegar una revisión:
Consola
Ve a Knative Serving en la Google Cloud consola:
Haga clic en Crear servicio si va a configurar un servicio nuevo que va a implementar. Si va a configurar un servicio que ya tiene, haga clic en él y, a continuación, en Editar y desplegar nueva revisión.
En Configuración avanzada, haga clic en Contenedor.
Selecciona el tamaño de memoria que quieras en la lista desplegable Memoria asignada.
Haz clic en Siguiente para ir a la siguiente sección.
En la sección Configurar la activación del servicio, selecciona la conectividad que quieras usar para invocar el servicio.
Haz clic en Crear para desplegar la imagen en Knative Serving y espera a que se complete el despliegue.
Línea de comandos
En el caso de los servicios que ya tengas, actualiza el límite de memoria ejecutando el comando
gcloud run services update
con el parámetro--memory
:gcloud run services update SERVICE --memory SIZE
Sustituye:
- SERVICE con el nombre de tu servicio.
- SIZE con el tamaño de memoria que quieras. El formato del tamaño es un número de punto fijo o flotante seguido de una unidad:
G
,M
oK
, que corresponden a gigabytes, megabytes o kilobytes, respectivamente. También puedes usar los equivalentes en potencias de dos:Gi
,Mi
oKi
, que corresponden a gibibytes, mebibytes o kibibytes, respectivamente.
En el caso de los servicios nuevos, define el límite de memoria ejecutando el comando
gcloud run deploy
con el parámetro--memory
:gcloud run deploy SERVICE --image=IMAGE_URL --memory SIZE
Sustituye:
- SERVICE con el nombre de tu servicio.
- IMAGE_URL con una referencia a la imagen del contenedor, por ejemplo,
gcr.io/cloudrun/hello
. - SIZE con el tamaño de memoria que quieras. El formato del tamaño es un número de punto fijo o flotante seguido de una unidad:
G
,M
oK
, que corresponden a gigabytes, megabytes o kilobytes, respectivamente. También puedes usar los equivalentes en potencias de dos:Gi
,Mi
oKi
, que corresponden a gibibytes, mebibytes o kibibytes, respectivamente.
YAML
Puedes descargar la configuración de un servicio en un archivo YAML con el comando gcloud run services describe
mediante la marca --format=export
.
A continuación, puedes modificar ese archivo YAML e implementar
los cambios con el comando gcloud run services replace
.
Debe asegurarse de modificar solo los atributos especificados.
Descarga la configuración de tu servicio en un archivo llamado
service.yaml
en el espacio de trabajo local:gcloud run services describe SERVICE --format export > service.yaml
Sustituye SERVICE por el nombre de tu servicio de Knative.
En su archivo local, actualice el atributo
memory
:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE_NAME spec: template: spec: containers: – image: IMAGE_URL resources: limits: memory: SIZE
Sustituye SIZE por el tamaño de memoria que quieras. El formato es un número de punto fijo o flotante seguido de una unidad:
G
,M
oK
, que corresponden a gigabyte, megabyte o kilobyte, respectivamente. También puede usar los equivalentes de potencia de dos:Gi
,Mi
oKi
, que corresponden a gibibyte, mebibyte o kibibyte, respectivamente.Sustituye el servicio por su nueva configuración con el siguiente comando:
gcloud run services replace service.yaml