Sie können Ihren Cloud Run-Dienst mit unterschiedlichen Speichermengen bereitstellen. Auf dieser Seite wird beschrieben, wie Sie die für Ihren Dienst verfügbare Arbeitsspeichermenge angeben.
Grundlegendes zur Arbeitsspeichernutzung
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 des Dienstes, da die ausführbare Datei in den Arbeitsspeicher geladen werden muss
- Arbeitsspeicher im Dienstprozess zuweisen
- Dateien in das Dateisystem schreiben
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 festlegen. Standardmäßig beträgt der jeder Instanz einer Überarbeitung zugewiesene Speicher 512 MiB und der einer Funktion zugewiesene Speicher 256 MiB.
Erforderliche Mindest-CPUs
Die von Ihnen ausgewählte Größe des zugewiesenen Arbeitsspeichers entspricht einer Menge an zugewiesener CPU für Ihren Dienst. Beim Festlegen eines Arbeitsspeicherlimits sind folgende CPU-Mindestlimits erforderlich:
Speicher | Mindestanzahl erforderlicher CPUs |
---|---|
128 MiB | .083 vCPU |
256 MiB | .167 vCPU |
512 MiB | .333 vCPU |
1 GiB | .583 vCPU |
2 GiB | 1 vCPU |
Mehr als 4 GiB | 2 vCPU |
Mehr als 8 GiB | 4 vCPU |
Mehr als 16 GiB | 6 vCPU |
Mehr als 24 GiB | 8 vCPU |
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
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Konfigurieren und Bereitstellen von Cloud Run-Diensten benötigen:
-
Rolle Cloud Run Entwickler (
roles/run.developer
) im Cloud Run-Job -
Dienstkontonutzer (
roles/iam.serviceAccountUser
) für die Dienstidentität
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 Service mit Google 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
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
Rufen Sie in der Google Cloud Console Cloud Run auf.
Klicken Sie auf Container bereitstellen und wählen Sie Dienst aus, um einen neuen Dienst zu konfigurieren. Wenn Sie einen vorhandenen Dienst konfigurieren möchten, klicken Sie auf den Dienst und dann auf Neue Überarbeitung bearbeiten und bereitstellen.
Wenn Sie einen neuen Dienst konfigurieren, füllen Sie die Seite mit den anfänglichen Diensteinstellungen aus und klicken Sie dann auf Container, Volumes, Netzwerk, Sicherheit, um die Seite zur Dienstkonfiguration zu maximieren.
Klicken Sie auf den Tab Container.
- Wählen Sie die gewünschte Arbeitsspeichergröße aus der Drop-down-Liste Arbeitsspeicher aus.
Klicken Sie auf Erstellen oder Bereitstellen.
gcloud
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
. Wenn Sie Artifact Registry verwenden, muss das Repository REPO_NAME bereits erstellt sein. Die URL hat die FormLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
. - SIZE durch die oben beschriebenen Werte.
YAML
Wenn Sie einen neuen Dienst erstellen, überspringen Sie diesen Schritt. Wenn Sie einen vorhandenen Dienst aktualisieren, laden Sie die zugehörige YAML-Konfiguration herunter:
gcloud run services describe SERVICE --format export > service.yaml
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
. Wenn Sie Artifact Registry verwenden, muss das Repository REPO_NAME bereits erstellt sein. Die URL hat die FormLOCATION-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
- Beginnt mit
Erstellen oder aktualisieren Sie den Dienst mit dem folgenden Befehl:
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_v2_service
-Ressource in Ihrer Terraform-Konfiguration unter template.containers.resources.limits
Folgendes hinzu: Ersetzen Sie 512Mi
durch das gewünschte Speicherlimit Ihres Dienstes.
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
Rufen Sie in der Google Cloud Console Cloud Run auf.
Klicken Sie auf den gewünschten Dienst, um die Seite Dienstdetails zu öffnen.
Klicken Sie auf den Tab Überarbeitungen.
Im Detailbereich rechts wird die Einstellung für das Speicherlimit auf dem Tab Container aufgelistet.
gcloud
Verwenden Sie den folgenden Befehl:
gcloud run services describe SERVICE
Suchen Sie in der zurückgegebenen Konfiguration nach der Einstellung für das Speicherlimit.