Maximale Anzahl von Instanzen

Standardmäßig haben Cloud Run-Dienste eine maximale Anzahl von Instanzen, die durch das niedrigste der folgenden relevanten Kontingentlimits bestimmt wird. Das maximale Limit für jede Region wird auch durch die CPU- und Arbeitsspeicherkonfiguration für Ihren Cloud Run-Dienst beeinflusst. Die maximale Anzahl von Instanzen, die für Ihren Dienst verfügbar sind, ist das Minimum der folgenden Werte:

  • Regionales CPU-Kontingent geteilt durch die CPU-Konfiguration für den Dienst.
  • Das regionale Speicherkontingent geteilt durch die Speicherkonfiguration für den Dienst.
  • Regionales GPU-Kontingent mit oder ohne zonale Redundanz, geteilt durch die GPU-Konfiguration für den Dienst.

Bei einem Basiskontingent von 1.000 vCPUs oder 2.000 GiB Arbeitsspeicher kann für ein Deployment mit 2 GiB Arbeitsspeicher oder 1 CPU ein Maximum von 1.000 Instanzen für einen einzelnen Dienst angegeben werden.

Diese Kontingente werden auch als Summe aller verwendeten Ressourcen in der Region für alle Ihre Cloud Run-Ressourcen berücksichtigt. Wenn Ihre Gesamtnutzung eines dieser Limits erreicht, kann es zu Fehlern beim Hochskalieren oder Starten neuer Jobausführungen kommen.

Die regionalen Kontingente für die Baseline-Grenzwerte für CPU, Arbeitsspeicher und GPU finden Sie auf der Seite „Kontingente“ in der Console.

Regionales Referenzkontingent erhöhen

Wenn Sie für die Region, in der Ihr Cloud Run-Dienst bereitgestellt wird, eine höhere Gesamtzahl an CPUs, Arbeitsspeicher oder GPUs benötigen, können Sie eine Kontingenterhöhung anfordern.

Best Practices zum Festlegen maximaler Instanzen

Im folgenden Abschnitt werden die Best Practices für die Konfiguration von maximalen Instanzlimits für Ihre Dienste beschrieben.

Optimaler maximaler Instanzwert für ereignisgesteuerte Dienste

Bei ereignisgesteuerten Diensten wie Funktionen kann es je nach eingehenden Ereignissen zu sporadischen Traffic-Spitzen kommen. Um einen optimalen Wert für die maximale Anzahl von Instanzen für diese Dienste zu ermitteln, müssen Sie Faktoren wie die Dienstaufrufzeit, die erwartete durchschnittliche Aufrufhäufigkeit, die maximale Aufrufhäufigkeit und die Fehlertoleranz für Aufruffehler berücksichtigen.

Es empfiehlt sich, mit einem maximalen Instanzwert von 3 zu beginnen, dann auf Aufruffehler zu überwachen und den Wert der maximalen Anzahl an Instanzen nach Bedarf anzupassen.

Anfragen bearbeiten, wenn alle Instanzen ausgelastet sind

Unter normalen Umständen wird Ihr Dienst hochskaliert, wenn neue Instanzen zum Verarbeiten des eingehenden Traffics erstellt werden. Wenn Sie jedoch ein Limit für die Höchstzahl der Instanzen festgelegt haben, kann es vorkommen, dass nicht genügend Instanzen vorhanden sind, um den eingehenden Traffic zu verarbeiten.

In diesem Szenario versucht Cloud Run bis zu 30 Sekunden, eine neue eingehende Anfrage zu verarbeiten:

  • Wenn eine Instanz die Verarbeitung ihrer Anfrage während dieses Zeitraums abschließt, kann sie mit der Verarbeitung der neuen eingehenden Anfrage beginnen.
  • Wenn keine Instanz verfügbar wird, schlägt die Anfrage fehl.

Cloud Run speichert Ereignisse für ereignisgesteuerte Dienste automatisch, bis Kapazität verfügbar ist.

Limits für die maximale Anzahl von Instanzen, die die Skalierbarkeit von Cloud Run überschreiten

Wenn Sie ein Limit für die maximale Anzahl von Instanzen festlegen, geben Sie eine Obergrenze an. Das Festlegen eines hohen Limits bedeutet nicht, dass Ihr Dienst bis auf die angegebene Anzahl von Instanzen skaliert wird. Es bedeutet lediglich, dass die Anzahl der zu einer beliebigen Zeit koexistierenden Instanzen den Grenzwert nicht überschreiten darf.

Außerdem kann sich das Festlegen eines maximalen Instanzlimits auf die Skalierungsstrategien auswirken, die Cloud Run zum Verarbeiten Ihres Trafficaufkommens verwendet. Im Allgemeinen priorisiert Cloud Run Ihr angegebenes Limit, statt vertikal zu skalieren und Ihr Limit möglicherweise zu überschreiten.

Trafficspitzen verarbeiten

In einigen Fällen, z. B. bei schnellem Trafficanstieg, kann Cloud Run für einen kurzen Zeitraum mehr Instanzen als das angegebene maximale Instanzenlimit erstellen. Wenn Ihr Dienst dieses temporäre Verhalten nicht akzeptiert, sollten Sie vielleicht eine Sicherheitsspanne hinzufügen und einen geringeren Wert für die Höchstzahl der Instanzen festlegen, als Ihr Dienst tolerieren kann.

Bereitstellungen

Wenn Sie eine neue Überarbeitung bereitstellen, migriert Cloud Run den Traffic von der früheren zur neuen Überarbeitung. Da für jede Überarbeitung ein unabhängiges Limit für die Höchstzahl der Instanzen festgelegt ist, können Sie das jeweilige Limit nach der Bereitstellung vorübergehend überschreiten.

Ein Dienst kann beispielsweise ein maximales Instanzenlimit von 5 haben. Unter normalen Umständen skaliert der Dienst bei der Verarbeitung von Anfragen bis auf 5 Instanzen. Wenn Sie eine neue Überarbeitung bereitstellen, hat die neue Überarbeitung ein eigenes maximales Instanzenlimit von 5.

Anfragen, die bereits von der vorherigen Überarbeitung verarbeitet werden, werden nicht unterbrochen, wenn Sie eine neue Überarbeitung bereitstellen. Stattdessen werden diese Anfragen weiterverarbeitet. Neue eingehende Anfragen werden von der neu bereitgestellten Version Ihres Dienstes verarbeitet.

Daher kann der Dienst im vorherigen Beispiel während des Zeitraums nach der Bereitstellung der neuen Überarbeitung insgesamt bis zu 10 Instanzen haben (5 für jede Überarbeitung). Die Zeit, die für das Beenden der Instanzen der vorherigen Überarbeitung benötigt wird, hängt von der Zeit ab, die diese Instanzen für die Verarbeitung aktiver Anfragen benötigen. Dies ist ein zusätzlicher Faktor, der bei der Auswahl eines geeigneten maximalen Instanzenlimits berücksichtigt werden muss.