Obtén información sobre cómo establecer límites para la memoria que usan tus instancias de contenedor en Cloud Run for Anthos en Google Cloud.
Información sobre el uso de memoria
Las instancias de contenedor de Cloud Run for Anthos que superan el límite de memoria permitido se finalizan.
Las siguientes acciones se consideran en la cantidad de memoria disponible de la instancia de contenedor:
- Ejecutar el ejecutable de la aplicación (ya que este debe cargarse en la memoria)
- Asignar memoria en el proceso de la aplicación
- Escribir archivos en el sistema de archivos
El tamaño de la imagen de contenedor implementada no se considera en la cantidad de memoria disponible.
Cantidad máxima de memoria
La cantidad máxima de memoria que puedes establecer está limitada por la configuración de tu clúster de GKE.
Optimiza la memoria
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 Sugerencias de desarrollo sobre variables globales.
Configura y actualiza los 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.
Puedes establecer límites de memoria con Cloud Console, elgcloud
herramienta de línea de comandos, o un archivo YAML cuando implementas una nuevaservicio o actualizar un servicio existenterevisión:
Console
Haz clic en Crear servicio si quieres configurar un servicio nuevo en el que realizarás la implementación. Si quieres configurar un servicio existente, haz clic en el servicio y, luego, haz clic en IMPLEMENTAR Y EDITAR UNA NUEVA REVISIÓN.
En Configuración avanzada, haz clic en Contenedor.
Selecciona el tamaño de memoria deseado de la lista desplegable Memory allocated (Memoria asignada).
Haz clic en Crear o Implementar.
Línea de comandos
Para servicios existentes, actualiza el límite de memoria mediante la ejecución del comando
gcloud kuberun core services update
con el parámetro--memory
.gcloud kuberun core services update SERVICE --memory SIZE
Reemplaza lo siguiente:
SERVICE
por el nombre de tu servicioSIZE
por el tamaño de memoria deseado El formato del tamaño es un número fijo o de punto flotante seguido de una unidad:G
,M
oK
, que corresponden a gigabytes, megabytes o kilobytes, respectivamente. También puedes usar equivalentes de potencia de dos:Gi
,Mi
,Ki
que corresponden a gibibyte, mebibyte o kibibyte, respectivamente.
Para servicios nuevos, establece el límite de memoria mediante la ejecución del comando
gcloud kuberun core services create
con el parámetro--memory
:gcloud kuberun core services create SERVICE --image=IMAGE_URL --memory SIZE
Reemplaza lo siguiente:
SERVICE
por el nombre de tu servicio- IMAGE_URL por una referencia a la imagen del contenedor, como
gcr.io/myproject/my-image:latest
SIZE
por el tamaño de memoria deseado El formato del tamaño es un número fijo o de punto flotante seguido de una unidad:G
,M
oK
, que corresponden a gigabytes, megabytes o kilobytes, respectivamente. También puedes usar equivalentes de potencia de dos:Gi
,Mi
,Ki
que corresponden a gibibyte, mebibyte o kibibyte, respectivamente.
YAML
Si deseas usar un archivo YAML para modificar la configuración de tu servicio existente, obtén una copia de la configuración actual, modifica y guarda los cambios en un archivo local y, luego, implementa esos cambios en tu servicio.
Muestra como YAML y, luego, copia la configuración de tu servicio en un archivo local, por ejemplo
service.yaml
:gcloud kuberun core services describe SERVICE --format yaml
Reemplaza SERVICE por el nombre de tu servicio de Cloud Run for Anthos.
En tu archivo local, actualiza 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
Reemplaza SIZE por el tamaño de memoria deseado. El formato es un número fijo o de punto flotante seguido de una unidad:
G
,M
oK
, que corresponde a gigabytes, megabytes o kilobytes, respectivamente, o usa equivalentes a la potencia de dos:Gi
,Mi
,Ki
que corresponde a gibibyte, mebibyte o kibibyte, respectivamente.Reemplaza el servicio por la configuración nueva mediante el comando siguiente:
gcloud beta run services replace service.yaml