Speicherlimits konfigurieren

Hier erfahren Sie, wie Sie Limits für den Arbeitsspeicher festlegen, der von Ihren Containerinstanzen bei der Bereitstellung von Knative verwendet wird.

Grundlegendes zur Speichernutzung

Instanzen von Knative-Bereitstellungscontainern, 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 Nebenläufigkeit eines Dienstes sollten Sie auch das Speicherlimit erhöhen, um Spitzenlasten abzufangen.

  • Wenn Sie die Nebenläufigkeit 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

  1. Rufen Sie in der Google Cloud Console die Knative-Bereitstellung auf:

    Zur Knative-Bereitstellung

  2. 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.

  3. Klicken Sie unter Erweiterte Einstellungen auf Container.

  4. Wählen Sie die gewünschte Arbeitsspeichergröße aus der Drop-down-Liste Zugewiesener Speicher aus.

  5. Klicken Sie auf Weiter, um mit dem nächsten Abschnitt fortzufahren.

  6. 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.

  7. Klicken Sie auf Erstellen, um das Image für Knative bereitzustellen, und 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 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:

    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 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.

  1. 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-Bereitstellungsdienstes.

  2. 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 oder K für Gigabyte, Megabyte oder Kilobyte, oder verwenden Sie die entsprechenden Zweierpotenz-Angaben: Gi, Mi, Ki für Gibibyte, Mebibyte oder Kibibyte.

  3. Ersetzen Sie den Dienst mit dem folgenden Befehl durch die neue Konfiguration:

    gcloud run services replace service.yaml