Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
Obtén información sobre cómo establecer límites para la memoria que usan tus instancias de contenedor en Knative serving.
Información sobre el uso de memoria
Las instancias de contenedores de Knative serving 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.
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 la consola de Google Cloud, Google Cloud CLI o un archivo YAML cuando implementas un servicio nuevo o actualizas un servicio existente e implementas una revisión:
Console
Ve a Knative serving en la consola de Google Cloud:
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 Siguiente para pasar a la siguiente sección.
En la sección Configura la forma en que se activa el servicio, selecciona la conectividad que deseas usar para invocar el servicio.
Haz clic en Crear para implementar la imagen en Knative serving y espera a que termine la implementación.
Línea de comandos
Para los servicios existentes, ejecuta el comando gcloud run services update con el parámetro --memory a fin de actualizar el límite de memoria:
gcloudrunservicesupdateSERVICE--memorySIZE
Reemplaza lo siguiente:
SERVICE por el nombre de tu servicio
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 o K, 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 run deploy con el parámetro --memory:
IMAGE_URL por una referencia a la imagen del contenedor, como gcr.io/cloudrun/hello
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 o K, 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
Puedes descargar la configuración de un servicio existente en un archivo YAML con el comando gcloud run services describe mediante la marca --format=export.
Luego, puedes modificar ese archivo YAML e implementar esos cambios con el comando gcloud run services replace.
Debes asegurarte de modificar solo los atributos especificados.
Descarga la configuración del servicio en un archivo llamado service.yaml en el lugar de trabajo local:
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 o K, 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:
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Información o código de muestra incorrectos","incorrectInformationOrSampleCode","thumb-down"],["Faltan la información o los ejemplos que necesito","missingTheInformationSamplesINeed","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 2025-04-22 (UTC)"],[],[],null,["# Configuring memory limits\n\nLearn how to set limits for the memory used by your container instances in\nKnative serving.\n\nUnderstanding memory usage\n--------------------------\n\nKnative serving container instances that exceed their allowed\nmemory limit are terminated.\n\nThe following count towards the available memory of your container instance:\n\n- Running the application executable (as the executable must be loaded to memory)\n- Allocating memory in your application process\n- Writing files to the filesystem\n\nThe size of the deployed container image does not count towards the available\nmemory.\n\nMaximum amount of memory\n------------------------\n\nThe maximum amount of memory you can configure is limited by the configuration\nof your GKE cluster.\n\nOptimizing memory\n-----------------\n\nYou can determine the peak memory requirement for a service using the\nfollowing: **(Standing Memory) + (Memory per Request) \\* (Service Concurrency)**\n\nAccordingly,\n\n- If you raise the concurrency of your service, you should also\n increase the memory limit to account for peak usage.\n\n- If you lower the concurrency of your service, consider reducing the memory\n limit to save on memory usage costs.\n\nFor more guidance on minimizing per request memory usage read\n[Development Tips on Global Variables](/kubernetes-engine/enterprise/knative-serving/docs/tips/general#using_global_variables).\n\nSetting and updating memory limits\n----------------------------------\n\nAny configuration change leads to the\ncreation of a new revision. Subsequent revisions will also automatically get\nthis configuration setting unless you make explicit updates to change it.\n\nYou can set memory limits using the Google Cloud console,\nthe Google Cloud CLI, or a YAML file when you deploy a new\n[service](/kubernetes-engine/enterprise/knative-serving/docs/deploying#service) or update an existing service and\ndeploy a [revision](/kubernetes-engine/enterprise/knative-serving/docs/deploying#revision): \n\n### Console\n\n\n1. Go to Knative serving in the Google Cloud console:\n\n [Go to Knative serving](https://console.cloud.google.com/kubernetes/run)\n2. Click **Create Service** if you are configuring a\n new service you are deploying to. If you are configuring an\n existing service, click on the service, then click\n **Edit \\& Deploy New Revision**.\n\n3. Under *Advanced settings* , click **Container**.\n\n4. Select the desired memory size from the\n **Memory allocated** dropdown list.\n\n5. Click **Next** to continue to the next section.\n\n6. In the **Configure how this service is triggered** section,\n select which connectivity you would like to use to invoke the service.\n\n7. Click **Create** to deploy the image to Knative serving and wait\n for the deployment to finish.\n\n### Command line\n\n- For existing services, update the memory limit by running the\n `gcloud run services update` command with the\n [`--memory`](/sdk/gcloud/reference/run/services/update#--memory)\n parameter:\n\n ```bash\n gcloud run services update SERVICE --memory SIZE\n ```\n\n Replace:\n - \u003cvar translate=\"no\"\u003eSERVICE\u003c/var\u003e with the name of your service.\n - \u003cvar translate=\"no\"\u003eSIZE\u003c/var\u003e with the desired memory size. The format for size is a fixed or floating point number followed by a unit: `G`, `M`, or `K` corresponding to gigabyte, megabyte, or kilobyte, respectively, or use the power-of-two equivalents: `Gi`, `Mi`, `Ki` corresponding to gibibyte, mebibyte or kibibyte respectively.\n- For new services, set the memory limit by running the\n `gcloud run deploy` command with the\n [`--memory`](/sdk/gcloud/reference/run/deploy#--memory)\n parameter:\n\n ```bash\n gcloud run deploy SERVICE --image=IMAGE_URL --memory SIZE\n ```\n\n Replace:\n - \u003cvar translate=\"no\"\u003eSERVICE\u003c/var\u003e with the name of your service.\n - \u003cvar translate=\"no\"\u003eIMAGE_URL\u003c/var\u003e with a reference to the container image, for example, `gcr.io/cloudrun/hello`.\n - \u003cvar translate=\"no\"\u003eSIZE\u003c/var\u003e with the desired memory size. The format for size is a fixed or floating point number followed by a unit: `G`, `M`, or `K` corresponding to gigabyte, megabyte, or kilobyte, respectively, or use the power-of-two equivalents: `Gi`, `Mi`, `Ki` corresponding to gibibyte, mebibyte or kibibyte respectively.\n\n### YAML\n\n| **Caution:** Deploying configuration changes using YAML files replaces the configuration of your existing services. Since a YAML file completely overwrites all configurations, you should avoid using multiple methods to modify your services. For example, do not use YAML files in conjunction with the Google Cloud console or `gcloud` commands.\n\nYou can download the configuration of an existing service into a\nYAML file with the `gcloud run services describe` command by using the\n[`--format=export`](/sdk/gcloud/reference/run/services/describe) flag.\nYou can then modify that YAML file and deploy\nthose changes with the `gcloud run services replace` command.\nYou must ensure that you modify only the specified attributes.\n\n1. Download the configuration of your service into a file named\n `service.yaml` on local workspace:\n\n ```bash\n gcloud run services describe SERVICE --format export \u003e service.yaml\n ```\n\n Replace \u003cvar translate=\"no\"\u003eSERVICE\u003c/var\u003e with the name of your\n Knative serving service.\n2. In your local file, update the `memory` attribute:\n\n ```yaml\n apiVersion: serving.knative.dev/v1\n kind: Service\n metadata:\n name: SERVICE_NAME\n spec:\n template:\n spec:\n containers:\n -- image: IMAGE_URL\n resources:\n limits:\n memory: SIZE\n ```\n\n Replace \u003cvar translate=\"no\"\u003eSIZE\u003c/var\u003e with the desired memory size.\n The format is a fixed or floating point number followed by a unit:\n `G`, `M`, or `K` corresponding to gigabyte, megabyte, or kilobyte,\n respectively, or use the power-of-two equivalents: `Gi`, `Mi`, `Ki`\n corresponding to gibibyte, mebibyte or kibibyte respectively.\n3. Replace the service with its new configuration using the following command:\n\n ```bash\n gcloud run services replace service.yaml\n ```"]]