Speicherlimits konfigurieren

Auf dieser Seite wird beschrieben, wie Sie Speicherlimits festlegen.

Grundlegendes zur Speichernutzung

Cloud Run-Instanzen, die das zulässige Arbeitsspeicherlimit überschreiten, werden beendet.

Folgendes wird auf den verfügbaren Arbeitsspeicher Ihrer Instanz 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.

Speicherlimits festlegen und aktualisieren

Sie können Arbeitsspeicherlimits für Cloud Run-Dienste und -Jobs festlegen. Standardmäßig beträgt der jeder Instanz einer Überarbeitung oder eines Jobs zugewiesene Speicher 512 MiB.

Erforderliche Mindest-CPUs

Beim Festlegen eines Arbeitsspeicherlimits sind folgende CPU-Mindestlimits erforderlich:

Speicher Mindestanzahl erforderlicher CPUs
Mehr als 4 GiB 2
Mehr als 8 GiB 4
Mehr als 16 GiB 6
Mehr als 24 GiB 8

Maximale Arbeitsspeichermenge

Sie können maximal 32 Gibibyte (32 Gi) Arbeitsspeicher konfigurieren.

Mindestspeicher

Die Mindestspeichereinstellung hängt davon ab, ob Sie die Ausführungsumgebung der ersten Generation oder der zweiten Generation verwenden:

  • 128 MiB für die erste Generation
  • 512 MiB für die zweite Generation

Für Cloud Run-Dienste

Jede Konfigurationsänderung führt zur Erstellung einer neuen Überarbeitung. Für nachfolgende Überarbeitungen gilt automatisch dieselbe Konfigurationseinstellung, sofern Sie sie nicht explizit aktualisieren.

Für Cloud Run-Dienste können Sie Arbeitsspeicherlimits über die Google Cloud Console, die gcloud-Befehlszeile oder eine YAML-Datei festlegen, wenn Sie einen neuen Dienst erstellen oder eine neue Revision bereitstellen:

Console

  1. Öffnen Sie Cloud Run.

  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. Wenn Sie einen neuen Dienst konfigurieren, füllen Sie die Seite mit den anfänglichen Diensteinstellungen wie gewünscht aus und klicken Sie dann auf Container, Netzwerk, Sicherheit, um die Seite zur Dienstkonfiguration zu maximieren.

  4. Klicken Sie auf den Tab Container.

    Image

    • Wählen Sie die gewünschte Arbeitsspeichergröße aus der Drop-down-Liste Arbeitsspeicher aus.
  5. Klicken Sie auf Erstellen oder Bereitstellen.

Befehlszeile

Mit dem folgenden Befehl können Sie die Speicherzuordnung eines bestimmten Dienstes aktualisieren:

gcloud run services update SERVICE --memory SIZE

Ersetzen Sie SERVICE durch den Dienstnamen und SIZE durch die gewünschte Speichergröße. Das Format für die Größe ist eine feste oder Gleitkommazahl gefolgt von einer Einheit: G oder M, die dem Gigabyte oder Megabyte entspricht, oder verwenden Sie die Potenz von zwei Entsprechungen: Gi oder Mi, die Gibibyte bzw. Mebibyte entsprechen.

Sie können die Speicherlimits auch während der Bereitstellung festlegen. Verwenden Sie folgenden Befehl:

gcloud run deploy --image IMAGE_URL --memory SIZE

Ersetzen Sie:

  • IMAGE_URL durch einen Verweis auf das Container-Image, z. B. us-docker.pkg.dev/cloudrun/container/hello:latest. Bei Verwendung von Artifact Registry hat die URL die Form REGION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG. .
  • SIZE durch die oben beschriebenen Werte.

YAML

Sie können vorhandene Dienstkonfigurationen mit dem Befehl gcloud run services describe --format export herunterladen und aufrufen, was bereinigte Ergebnisse im YAML-Format liefert. Anschließend können Sie die unten beschriebenen Felder ändern und die geänderte YAML-Datei mit dem Befehl gcloud run services replace hochladen. Achten Sie darauf, dass Sie die Felder nur wie dokumentiert ändern.

  1. So rufen Sie die Konfiguration auf und laden sie herunter:

    gcloud run services describe SERVICE --format export > service.yaml
  2. Aktualisieren Sie das Attribut memory:

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: SERVICE
    spec:
      template:
        metadata:
          name: REVISION
        spec:
          containers:
          - image: IMAGE
            resources:
              limits:
                memory: SIZE

    Ersetzen

    • SERVICE durch den Namen Ihres Cloud Run-Dienstes
    • IMAGE_URL durch einen Verweis auf das Container-Image, z. B. us-docker.pkg.dev/cloudrun/container/hello:latest. Bei Verwendung von Artifact Registry hat die URL die Form REGION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
    • SIZE durch die gewünschte Arbeitsspeichergröße. Das Format ist eine feste oder Gleitkommazahl gefolgt von einer Einheit:G oderM dem Gigabyte oder Megabyte entspricht, oder verwenden Sie die Potenz von zwei Entsprechungen: Gi oderMi, die Gibibyte bzw. Mebibyte entsprechen.
    • REVISION durch einen neuen Überarbeitungsnamen oder löschen (falls vorhanden). Wenn Sie einen neuen Überarbeitungsnamen angeben, muss er die folgenden Kriterien erfüllen:
      • Beginnt mit SERVICE-
      • Enthält nur Kleinbuchstaben, Ziffern und -
      • Endet nicht mit -
      • Darf nicht mehr als 63 Zeichen enthalten
  3. Ersetzen Sie den Dienst mit dem folgenden Befehl durch die neue Konfiguration:

    gcloud run services replace service.yaml

Terraform

Informationen zum Anwenden oder Entfernen einer Terraform-Konfiguration finden Sie unter Grundlegende Terraform-Befehle.

Fügen Sie einer google_cloud_run_service-Ressource in Ihrer Terraform-Konfiguration unter template.spec.containers Folgendes hinzu: Ersetzen Sie 512Mi durch das gewünschte Speicherlimit Ihres Dienstes.

resources {
  limits = {
    # CPU usage limit
    # https://cloud.google.com/run/docs/configuring/cpu
    cpu = "1000m" # 1 vCPU

    # Memory usage limit (per container)
    # https://cloud.google.com/run/docs/configuring/memory-limits
    memory = "512Mi"
  }
}

Für Cloud Run-Jobs

Für einen Cloud Run-Job müssen mindestens 512Mi angegeben werden. So geben Sie den Arbeitsspeicher für einen Cloud Run-Job an:

Console

  1. Öffnen Sie Cloud Run.

  2. Klicken Sie auf den Tab Jobs und füllen Sie die Seite mit den anfänglichen Jobeinstellungen wie gewünscht aus, wenn Sie einen neuen Job konfigurieren. Klicken Sie auf den Job und dann auf Bearbeiten, wenn Sie einen vorhandenen Job konfigurieren.

  3. Klicken Sie auf Container, Variablen und Secrets, Verbindungen, Sicherheit, um die Seite mit den Jobattributen zu maximieren.

  4. Klicken Sie auf den Tab Container.

    Image

    • Wählen Sie die gewünschte Arbeitsspeichergröße aus der Drop-down-Liste Arbeitsspeicher aus.
  5. Klicken Sie auf Erstellen oder Aktualisieren.

Befehlszeile

  1. So legen Sie Arbeitsspeicherlimits beim Erstellen eines Jobs fest:

    gcloud run jobs create JOB_NAME --image IMAGE_URL --memory SIZE

    Ersetzen Sie:

    • JOB_NAME durch den Namen des Jobs.
    • IMAGE_URL durch einen Verweis auf das Container-Image, z. B. us-docker.pkg.dev/cloudrun/container/job:latest.
    • SIZE durch die gewünschte Arbeitsspeichergröße. Das Format für die Größe ist eine feste oder Gleitkommazahl gefolgt von einer Einheit: G oder M, die dem Gigabyte oder Megabyte entspricht, oder verwenden Sie die Potenz von zwei Entsprechungen: Gi oder Mi, die Gibibyte bzw. Mebibyte entsprechen.
  2. So legen Sie Arbeitsspeicherlimits beim Aktualisieren eines Jobs fest:

    gcloud run jobs update JOB_NAME --memory SIZE

YAML

Laden Sie die vorhandene Jobkonfiguration herunter und verwenden Sie den Befehl gcloud run jobs describe --format export, um bereinigte Ergebnisse im YAML-Format zu erhalten. Ändern Sie dann die unten beschriebenen Felder und laden Sie die geänderte YAML-Datei mit dem Befehl gcloud run jobs replace hoch. Achten Sie darauf, dass Sie die Felder nur wie dokumentiert ändern.

  1. So rufen Sie die Konfiguration auf und laden sie herunter:

    gcloud run jobs describe JOB_NAME --format export > job.yaml
  2. Aktualisieren Sie das Attribut memory:

    apiVersion: run.googleapis.com/v1
    kind: Job
    metadata:
      name: JOB
    spec:
      template:
        spec:
          template:
            spec:
          containers:
          - image: IMAGE
            resources:
              limits:
                memory: SIZE

    Ersetzen Sie SIZE durch die gewünschte Speichergröße und geben Sie mindestens 512 Mi an. Das Format ist eine feste Zahl oder Gleitkommazahl gefolgt von der Einheit: G oder M, was Gigabyte oder Megabyte entspricht. Alterntiv verwenden Sie die Potenz von zwei Entsprechungen: Gi oder Mi, was Gibibyte bzw. Mebibyte entspricht.

    Sie können auch weitere Konfigurationen angeben, z. B. Umgebungsvariablen oder Speicherlimits.

  3. Aktualisieren Sie die vorhandene Jobkonfiguration:

    gcloud run jobs replace job.yaml

Speicher für Dienste optimieren

So können Sie für einen Cloud Run-Dienst 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.

Einstellungen für das Speicherlimit anzeigen

So rufen Sie die aktuellen Einstellungen für das Speicherlimit für Ihren Cloud Run-Dienst auf:

Console

  1. Öffnen Sie Cloud Run.

  2. Klicken Sie auf den gewünschten Dienst, um die Seite Dienstdetails zu öffnen.

  3. Klicken Sie auf den Tab Überarbeitungen.

  4. Im Detailbereich rechts wird die Einstellung für das Speicherlimit auf dem Tab Container aufgelistet.

Befehlszeile

  1. Verwenden Sie den folgenden Befehl:

    gcloud run services describe SERVICE
  2. Suchen Sie in der zurückgegebenen Konfiguration nach der Einstellung für das Speicherlimit.

So rufen Sie die aktuellen Einstellungen für das Speicherlimit für Ihren Cloud Run-Job auf:

Console

  1. Zu Cloud Run-Jobs

  2. Klicken Sie auf den gewünschten Job, um die Seite Jobdetails zu öffnen.

  3. Klicken Sie auf den Tab Konfiguration.

  4. Suchen Sie die Einstellung für das Speicherlimit in den Konfigurationsdetails.

Befehlszeile

  1. Verwenden Sie den folgenden Befehl:

    gcloud run jobs describe JOB_NAME
  2. Suchen Sie in der zurückgegebenen Konfiguration nach der Einstellung für das Speicherlimit.