Speicherlimits für Jobs konfigurieren

Sie können die Speichermenge für Ihren Cloud Run-Job auswählen. Auf dieser Seite wird beschrieben, wie Sie die für Ihren Job verfügbare Arbeitsspeichermenge angeben.

Grundlegendes zur Arbeitsspeichernutzung

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

Der verfügbare Arbeitsspeicher Ihrer Instanz muss für Folgendes ausreichen:

  • Ausführen der ausführbaren Datei des Jobs, da die ausführbare Datei in den Arbeitsspeicher geladen werden muss
  • Arbeitsspeicher im Jobprozess zuweisen
  • Dateien in das Dateisystem schreiben

Die Größe des bereitgestellten Container-Images hat keinen Einfluss auf den für die Instanz verfügbaren Arbeitsspeicher.

Speicherlimits festlegen und aktualisieren

Sie können Arbeitsspeicherlimits für Cloud Run-Jobs festlegen. Standardmäßig beträgt die Arbeitsspeicherzuweisung für jeden Job und die Arbeitsspeicherzuweisung für eine Funktion 256 MiB.

Erforderlicher Arbeitsspeicher beim Festlegen eines CPU-Werts

Beim Festlegen eines CPU-Werts ist der folgende Arbeitsspeicher erforderlich:

CPUs Arbeitsspeicher erforderlich
1 vCPU 512 MiB bis 4 GiB
2 vCPU 512 MiB bis 8 GiB
4 vCPU 2 bis 16 GiB
6 vCPUs 4 bis 24 GiB
8 vCPUs 4 bis 32 GiB

Maximale Arbeitsspeichermenge

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

Mindestspeicher

Die Mindestspeichereinstellung beträgt 512 MiB.

Kostengesichtspunkte

Die Kosten für Ihren Cloud Run-Job hängen unter anderem von der Speicherkonfiguration und der Dauer der Aktivität der Ressource ab. Eine Überdimensionierung Ihrer Ressourcen kann die Kosten erhöhen. So ermitteln Sie, welche Arbeitsspeicherkonfiguration für Ihre Ressource am besten geeignet ist:

  1. Erstellen Sie eine erste Baseline-Konfiguration.
  2. Behalten Sie die Messwerte zur Arbeitsspeicherauslastung in Cloud Monitoring im Blick, während Sie das System unter Last testen.
  3. Passen Sie die Konfiguration nach Bedarf an.

Wenn die Arbeitsspeicherauslastung durchgehend niedrig ist, sollten Sie den zugewiesenen Arbeitsspeicher reduzieren. Wenn die Latenz hoch ist und die Arbeitsspeicherauslastung fast 100 % beträgt, sollten Sie den zugewiesenen Arbeitsspeicher erhöhen. Wenn Out of Memory (OOM)-Fehler auftreten, sollten Sie den zugewiesenen Arbeitsspeicher erhöhen oder Ihre Anwendung so ändern, dass Speicherlecks vermieden werden und weniger Arbeitsspeicher verwendet wird. Weitere Informationen zur Arbeitsspeicherauslastung finden Sie im Cloud Monitoring-Dashboard.

Weitere Informationen finden Sie unter Cloud Run – Preise. Sie können die Kosten auch mit dem Preisrechner schätzen.

Erforderliche Rollen

Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen zu gewähren, um die zum Konfigurieren von Cloud Run-Jobs erforderlichen Berechtigungen zu erhalten:

Eine Liste der IAM-Rollen und -Berechtigungen im Zusammenhang mit Cloud Run finden Sie unter IAM-Rollen für Cloud Run und IAM-Berechtigungen für Cloud Run. Wenn Ihr Cloud Run-Job mitGoogle Cloud APIs wie Cloud-Clientbibliotheken verknüpft ist, lesen Sie die Konfigurationsanleitung für Dienstidentitäten. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Bereitstellungsberechtigungen und Zugriff verwalten.

Speicherlimits konfigurieren

Für einen Cloud Run-Job müssen mindestens 512Mi angegeben werden.

Sie können Arbeitsspeicherlimits für einen Cloud Run-Job über dieGoogle Cloud Console, die gcloud CLI, YAML oder Terraform konfigurieren:

Console

  1. Rufen Sie in der Google Cloud Console die Seite „Cloud Run“ auf:

    Zu Cloud Run

  2. Wählen Sie im Cloud Run-Navigationsmenü die Option Jobs aus:

    1. Wenn Sie einen neuen Job erstellen, klicken Sie auf Container bereitstellen, um die Seite mit den anfänglichen Jobeinstellungen auszufüllen.

    2. Wenn Sie einen vorhandenen Job konfigurieren, wählen Sie den Job aus und klicken Sie dann auf Jobkonfiguration ansehen und bearbeiten.

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

  4. Wählen Sie auf dem Tab Container die Arbeitsspeichergröße aus der Liste Arbeitsspeicher aus.

  5. Klicken Sie auf Erstellen oder Aktualisieren.

gcloud

  • Führen Sie den folgenden Befehl aus, um Arbeitsspeicherlimits beim Erstellen eines neuen Jobs festzulegen:

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

    Ersetzen Sie Folgendes:

    • JOB: Der Name Ihres Cloud Run-Jobs.
    • IMAGE_URL: Ein Verweis auf das Container-Image, z. B. us-docker.pkg.dev/cloudrun/container/job:latest.
    • SIZE: die 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.
  • Führen Sie den folgenden Befehl aus, um Arbeitsspeicherlimits beim Aktualisieren eines vorhandenen Jobs festzulegen:

    gcloud run jobs update JOB --memory SIZE

YAML

  1. Wenn Sie einen neuen Job erstellen, überspringen Sie diesen Schritt. Wenn Sie einen vorhandenen Job aktualisieren, laden Sie die zugehörige YAML-Konfiguration herunter:

    gcloud run jobs describe JOB --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_URL
                resources:
                  limits:
                    memory: SIZE

    Ersetzen Sie Folgendes:

    • JOB: Der Name Ihres Cloud Run-Jobs.
    • IMAGE_URL: Ein Verweis auf das Container-Image, z. B. us-docker.pkg.dev/cloudrun/container/job:latest.
    • SIZE: die Speichergröße, wobei mindestens 512 Mi angegeben werden müssen. 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. Erstellen oder aktualisieren Sie den Dienst mit dem folgenden Befehl:

    gcloud run jobs replace job.yaml

    Der Befehl gcloud run jobs replace verwendet standardmäßig die Datei job.yaml, falls vorhanden.

Terraform

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

Fügen Sie einer google_cloud_run_v2_job-Ressource in Ihrer Terraform-Konfiguration Folgendes hinzu:
resource "google_cloud_run_v2_job" "default" {
  name     = "JOB"
  location = "REGION"
  deletion_protection = false

  template {
    template {
      containers {
        image = "us-docker.pkg.dev/cloudrun/container/job"
        resources {
          limits = {
            cpu    = "2"
            memory = "SIZE"
          }
        }
      }
    }
  }
}

Ersetzen Sie Folgendes:

  • JOB: Der Name Ihres Cloud Run-Jobs.
  • REGION: die Region Google Cloud . Beispiel: europe-west1.
  • SIZE: die erforderliche Speichergröße, wobei mindestens 512 Mi angegeben werden müssen. 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.

Einstellungen für das Speicherlimit anzeigen

So rufen Sie die aktuellen Einstellungen für das Speicherlimit für Ihren Cloud Run-Job auf: Verwenden Sie die Google Cloud Console oder die Google Cloud CLI:

Console

  1. Wechseln Sie in der Google Cloud Console zur Seite „Cloud Run-Jobs“:

    Zu Cloud Run-Jobs

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

  3. Klicken Sie auf Jobkonfiguration ansehen und bearbeiten.

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

gcloud

  1. Führen Sie dazu diesen Befehl aus:

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