Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
Découvrez comment définir des limites de mémoire pour vos instances de conteneur dans Knative serving.
Comprendre l'utilisation de la mémoire
Les instances de conteneur Knative serving qui dépassent la limite de mémoire autorisée sont arrêtées.
Les opérations suivantes sont comptabilisées dans la mémoire disponible de votre instance de conteneur :
Exécution de l'exécutable de l'application (car l'exécutable doit être chargé en mémoire)
Allocation de mémoire dans votre processus d'application
Écriture des fichiers dans le système de fichiers
La taille de l'image de conteneur déployée n'est pas comptabilisée dans la mémoire disponible.
Quantité maximale de mémoire
La quantité maximale de mémoire que vous pouvez configurer est limitée par la configuration de votre cluster GKE.
Optimiser la mémoire
Vous pouvez déterminer la quantité de mémoire maximale requise pour un service à l'aide des éléments suivants : (mémoire permanente) + (mémoire par requête) * (simultanéité des services).
En conséquence :
Si vous augmentez la simultanéité de votre service, vous devez également augmenter la limite de mémoire afin de prendre en compte les pics d'utilisation.
Si vous réduisez la simultanéité de votre service, envisagez de réduire la limite de mémoire pour économiser sur les coûts d'utilisation de la mémoire.
Toute modification de configuration entraîne la création d'une révision. Les révisions ultérieures obtiennent aussi automatiquement le même paramètre de configuration, à moins que vous ne le mettiez explicitement à jour.
Vous pouvez définir des limites de mémoire à l'aide de la Google Cloud console, de la Google Cloud CLI ou d'un fichier YAML lorsque vous déployez un nouveau service ou mettez à jour un service existant et déployez une révision:
Console
Accédez à Knative serving dans la console Google Cloud :
Cliquez sur Créer un service si vous configurez un nouveau service sur lequel effectuer un déploiement. Si vous configurez un service existant, cliquez sur celui-ci, puis sur Modifier et déployer la nouvelle révision.
Sous Paramètres avancés, cliquez sur Conteneur.
Sélectionnez la taille de mémoire souhaitée dans la liste déroulante Mémoire allouée.
Cliquez sur Next (Suivant) pour passer à la section suivante.
Dans la section Configurer la manière dont ce service est déclenché, sélectionnez la connectivité que vous souhaitez utiliser pour appeler le service.
Cliquez sur Créer pour déployer l'image sur Knative serving et attendez la fin du déploiement.
Ligne de commande
Pour les services existants, mettez à jour la limite de mémoire en exécutant la commande gcloud run services update avec le paramètre --memory :
gcloudrunservicesupdateSERVICE--memorySIZE
Remplacez :
SERVICE par le nom de votre service ;
SIZE par la taille de mémoire souhaitée. Le format de la taille est un nombre fixe ou à virgule flottante suivi d'une unité : G, M ou K correspondant respectivement au gigaoctet, au mégaoctet ou au kilo-octet, ou qui utilise des équivalents en puissance de deux : Gi, Mi, Ki correspondant respectivement au gibioctet, au mébioctet ou au kibioctet.
Pour les nouveaux services, définissez la limite de mémoire en exécutant la commande gcloud run deploy avec le paramètre --memory :
IMAGE_URL par une référence à l'image de conteneur, par exemple gcr.io/cloudrun/hello ;
SIZE par la taille de mémoire souhaitée. Le format de la taille est un nombre fixe ou à virgule flottante suivi d'une unité : G, M ou K correspondant respectivement au gigaoctet, au mégaoctet ou au kilo-octet, ou qui utilise des équivalents en puissance de deux : Gi, Mi, Ki correspondant respectivement au gibioctet, au mébioctet ou au kibioctet.
YAML
Vous pouvez télécharger la configuration d'un service existant dans un fichier YAML avec la commande gcloud run services describe à l'aide de l'option --format=export.
Vous pouvez ensuite modifier ce fichier YAML et déployer ces modifications à l'aide de la commande gcloud run services replace.
Veillez à ne modifier que les attributs spécifiés.
Téléchargez la configuration de votre service dans un fichier nommé service.yaml sur l'espace de travail local :
Remplacez SIZE par la taille de mémoire souhaitée.
Le format est un nombre fixe ou à virgule flottante suivi d'une unité : G, M ou K correspondant respectivement au gigaoctet, au mégaoctet ou au kilo-octet, ou qui utilise des équivalents en puissance de deux : Gi, Mi, Ki correspondant respectivement au gibioctet, au mébioctet ou au kibioctet.
Remplacez la configuration du service en utilisant la commande suivante :
gcloudrunservicesreplaceservice.yaml
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/07/31 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Difficile à comprendre","hardToUnderstand","thumb-down"],["Informations ou exemple de code incorrects","incorrectInformationOrSampleCode","thumb-down"],["Il n'y a pas l'information/les exemples dont j'ai besoin","missingTheInformationSamplesINeed","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2025/07/31 (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 ```"]]