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.
Weitere Informationen dazu, wie Sie den Speicherbedarf pro Anfrage verringern können, finden Sie unter Tipps für Entwickler: globale Variablen.
Speicherlimits festlegen und aktualisieren
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.gcloud run services update SERVICE --memory SIZE
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
oderK
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:gcloud run deploy SERVICE --image=IMAGE_URL --memory SIZE
Ersetzen Sie:
- SERVICE durch den Namen des Dienstes.
- 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
oderK
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:gcloud run services describe SERVICE --format export > service.yaml
Ersetzen Sie SERVICE durch den Namen Ihres Knative-Serving-Dienstes.
Aktualisieren Sie in Ihrer lokalen Datei das Attribut
memory
:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE_NAME spec: template: spec: containers: – image: IMAGE_URL resources: limits: memory: SIZE
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
oderK
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:
gcloud run services replace service.yaml