Standardmäßig haben Cloud Run-Dienste maximal 100 Instanzen. Sie können diese Anzahl auf das für Ihre Region zulässige Maximum erhöhen. Das maximale Limit für jede Region hängt auch von der CPU- und Arbeitsspeicherkonfiguration Ihres Cloud Run-Dienstes ab. Die maximale Anzahl von Instanzen, die für Ihren Dienst verfügbar sind, ist das Minimum der folgenden Werte:
- regionales Basiskontingent geteilt durch das gewünschte Vielfache von 1 CPU
- regionales Basiskontingent geteilt durch das gewünschte Vielfache von 2 GB Arbeitsspeicher
Beispielsweise hat ein Basiskontingent von 1.000 Instanzen mit 4 GB Arbeitsspeicher oder 2 CPUs ein effektives Limit von 500.
Das grundlegende Kontingent pro Region für Ihre Region finden Sie in der Console auf der Seite „Kontingente“.
Referenzkontingent für die Region erhöhen
Wenn Sie für die Region, in der Ihr Cloud Run-Dienst bereitgestellt wird, eine größere maximale Anzahl von Instanzen benötigen, können Sie eine Kontingenterhöhung anfordern.
Best Practices für die Festlegung der maximalen Anzahl von Instanzen
Im folgenden Abschnitt werden 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 aufgrund eingehender Ereignisse zu vereinzelten Verkehrsspitzen kommen. Um den optimalen Wert für die maximale Anzahl von Instanzen für diese Dienste zu ermitteln, müssen Sie Faktoren wie die Zeit für den Dienstaufruf, die erwartete durchschnittliche Aufrufhäufigkeit, die maximale Aufrufhäufigkeit und die Fehlertoleranz bei Aufruffehlern 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 vorübergehende Verhalten nicht akzeptiert, sollten Sie vielleicht eine Sicherheitsspanne hinzufügen und einen geringeren Wert für die maximale Anzahl von Instanzen festlegen, als Ihr Dienst tolerieren kann.
Deployments
Wenn Sie eine neue Version bereitstellen, migriert Cloud Run den Traffic von der früheren Version zur neuen. 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 Version bereitstellen, hat die neue Version ein eigenes maximales Instanzenlimit von 5.
Anfragen, die bereits von der vorherigen Version verarbeitet werden, werden nicht unterbrochen, wenn Sie eine neue Version 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 Version insgesamt bis zu 10 Instanzen haben (5 für jede Überarbeitung). Die Zeit, die für das Beenden der Instanzen der vorherigen Version 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.