Mit Sammlungen den Überblick behalten
Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
Limits für den Arbeitsspeicher festlegen, der von Ihren Containerinstanzen in Knative Serving verwendet wird.
Grundlegendes zur Speichernutzung
Knative Serving-Containerinstanzen, die das zulässige Arbeitsspeicherlimit überschreiten, werden beendet.
Folgendes wird auf den verfügbaren Arbeitsspeicher Ihrer Containerinstanz angerechnet:
Ausführen der ausführbaren Datei einer Anwendung, da die ausführbare Datei in den Arbeitsspeicher geladen werden muss
Zuweisen von Arbeitsspeicher im Anwendungsprozess
Schreiben von Dateien in das Dateisystem
Die Größe des bereitgestellten Container-Images wird nicht auf den verfügbaren Arbeitsspeicher angerechnet.
Maximale Arbeitsspeichermenge
Die maximal konfigurierbare Arbeitsspeicherkapazität ist durch die Konfiguration Ihres GKE-Clusters begrenzt.
Speicher optimieren
So können Sie den maximalen Arbeitsspeicherbedarf für einen Dienst ermitteln: (Vorhandener Arbeitsspeicher) + (Angeforderter Speicher) * (Gleichzeitigkeit des Dienstes).
Entsprechend gilt:
Zusammen mit der Gleichzeitigkeit eines Dienstes sollten Sie auch das Speicherlimit erhöhen, um Spitzenlasten abzufangen.
Wenn Sie die Gleichzeitigkeit des Dienstes verringern, können Sie auch das Speicherlimit verringern, um Speicherkosten zu sparen.
Jede Konfigurationsänderung führt zur Erstellung einer neuen Überarbeitung. Für nachfolgende Überarbeitungen gilt automatisch dieselbe Konfigurationseinstellung, sofern Sie sie nicht explizit aktualisieren.
Sie können Arbeitsspeicherlimits mit der Google Cloud Console, dem Google Cloud CLI oder einer YAML-Datei festlegen, wenn Sie einen neuen Dienst bereitstellen oder einen vorhandenen Dienst aktualisieren und eine Überarbeitung bereitstellen:
Console
Rufen Sie in der Google Cloud Console Knative Serving auf:
Klicken Sie auf Dienst erstellen, wenn Sie einen neuen Dienst für die Bereitstellung konfigurieren. Wenn Sie einen vorhandenen Dienst konfigurieren möchten, klicken Sie auf den Dienst und dann auf Neue Überarbeitung bearbeiten und bereitstellen.
Klicken Sie unter Erweiterte Einstellungen auf Container.
Wählen Sie die gewünschte Arbeitsspeichergröße aus der Drop-down-Liste Zugewiesener Speicher aus.
Klicken Sie auf Weiter, um mit dem nächsten Abschnitt fortzufahren.
Wählen Sie im Abschnitt Konfigurieren, wie dieser Dienst ausgelöst wird die Verbindung aus, die Sie zum Auslösen des Dienstes verwenden möchten.
Klicken Sie auf Erstellen, um das Image in Knative Serving bereitzustellen. Warten Sie, bis die Bereitstellung abgeschlossen ist.
Befehlszeile
Aktualisieren Sie für vorhandene Dienste das Speicherlimit, indem Sie den Befehl gcloud run services update mit dem Parameter --memory ausführen.
gcloudrunservicesupdateSERVICE--memorySIZE
Ersetzen Sie:
SERVICE durch den Namen des Dienstes.
SIZE durch die gewünschte Arbeitsspeichergröße. Geben Sie die Größe als Fest- oder Fließkommazahl gefolgt von einer Einheit ein: G, M oder K für Gigabyte, Megabyte oder Kilobyte, oder verwenden Sie die entsprechenden Zweierpotenz-Angaben: Gi, Mi, Ki für Gibibyte, Mebibyte oder Kibibyte.
Legen Sie für neue Dienste das Speicherlimit fest, indem Sie den Befehl gcloud run deploy mit dem Parameter --memory ausführen:
IMAGE_URL durch einen Verweis auf das Container-Image, z. B. gcr.io/cloudrun/hello.
SIZE durch die gewünschte Arbeitsspeichergröße. Geben Sie die Größe als Fest- oder Fließkommazahl gefolgt von einer Einheit ein: G, M oder K für Gigabyte, Megabyte oder Kilobyte, oder verwenden Sie die entsprechenden Zweierpotenz-Angaben: Gi, Mi, Ki für Gibibyte, Mebibyte oder Kibibyte.
YAML
Sie können die Konfiguration eines vorhandenen Dienstes in eine YAML-Datei herunterladen – mit dem gcloud run services describe-Befehl mithilfe des Flags --format=export.
Sie können diese YAML-Datei dann ändern und diese Änderungen mit dem Befehl gcloud run services replace bereitstellen.
Sie müssen sicherstellen, dass Sie nur die angegebenen Attribute ändern.
Laden Sie die Konfiguration des Dienstes in eine Datei mit dem Namen service.yaml im lokalen Arbeitsbereich herunter:
Ersetzen Sie SIZE durch die gewünschte Speichergröße.
Geben Sie die Größe als Fest- oder Fließkommazahl gefolgt von einer Einheit ein: G, M oder K für Gigabyte, Megabyte oder Kilobyte, oder verwenden Sie die entsprechenden Zweierpotenz-Angaben: Gi, Mi, Ki für Gibibyte, Mebibyte oder Kibibyte.
Ersetzen Sie den Dienst mit dem folgenden Befehl durch die neue Konfiguration:
[[["Leicht verständlich","easyToUnderstand","thumb-up"],["Mein Problem wurde gelöst","solvedMyProblem","thumb-up"],["Sonstiges","otherUp","thumb-up"]],[["Schwer verständlich","hardToUnderstand","thumb-down"],["Informationen oder Beispielcode falsch","incorrectInformationOrSampleCode","thumb-down"],["Benötigte Informationen/Beispiele nicht gefunden","missingTheInformationSamplesINeed","thumb-down"],["Problem mit der Übersetzung","translationIssue","thumb-down"],["Sonstiges","otherDown","thumb-down"]],["Zuletzt aktualisiert: 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 ```"]]