Konfigurieren der Flottenskalierung
Wenn Sie eine Flotte erstellen, verwenden Sie Skalierungsparameter, um zu steuern, wie viele Worker Ihre Code Engine-Flotte bereitstellt und wie sie auf Änderungen der Aufgabenauslastung reagiert.
Alle Skalierungsparameter sind optional und können beim Anlegen einer Flotte festgelegt werden.
Skalierungsparameter in der CLI von Code Engine
Um eine Flotte zu erstellen, verwenden Sie den Befehl ibmcloud ce fleet create oder ibmcloud ce fleet run. Für die Skalierung der Flotte stehen die folgenden Optionen zur Verfügung. Eine vollständige Liste aller verfügbaren
Befehlsoptionen finden Sie in der CLI-Referenz.
--scale-max-
Die Obergrenze für die Gesamtzahl der gleichzeitigen Task-Slots über alle Worker hinweg. Worker lassen sich so skalieren, dass sie höchstens diese Anzahl gleichzeitiger Aufgaben unterstützen. Standardmäßig
10. --scale-min-
Die Mindestanzahl an Slots für gleichzeitige Aufgaben, die stets bereitgestellt bleiben, auch wenn keine ausstehenden oder laufenden Aufgaben vorhanden sind. Worker, die diese Kapazität bereitstellen, bleiben aktiv und werden niemals automatisch heruntergefahren.
Eine Flotte, die aufgrund dieser Einstellung über aktive Worker verfügt, jedoch keine ausstehenden oder laufenden Aufgaben hat, hat den Status Standby.
Muss kleiner oder gleich sein
--scale-max. Standardmäßig0. --scale-spare-
Die Anzahl der freien Slots für gleichzeitige Aufgaben, die über der aktuellen Anzahl laufender Aufgaben gehalten wird. Wenn alle Worker ausgelastet sind, stellt die Flotte zusätzliche Worker bereit, um den Reservepuffer wiederherzustellen – bis zu
--scale-max. Neue Aufgaben, die eingehen, solange noch freie Kapazitäten vorhanden sind, werden sofort ausgeführt, ohne auf einen neuen Worker zu warten.Muss kleiner oder gleich sein
--scale-max. Standardmäßig0. --scale-down-delay-
Gibt an, wie lange ein Worker nach Abschluss seiner letzten Aufgabe weiterläuft, bevor Code Engine ihn herunterfährt. Ein Worker, dessen letzte Aufgabe innerhalb des Verzögerungsfensters abgeschlossen wurde, übernimmt neue Aufgaben sofort, sobald diese eintreffen.
Geben Sie eine positive ganze Zahl für die Anzahl der Sekunden an. Standardmäßig (
0die Anzahl der Worker wird reduziert, sobald sie nicht mehr benötigt werden).
Skalierungsparameter in der Code Engine-Konsole
- Maximale Anzahl an Container-Slots
-
Die Obergrenze für die Gesamtzahl der gleichzeitigen Task-Slots über alle Worker hinweg. Worker lassen sich so skalieren, dass sie höchstens diese Anzahl gleichzeitiger Aufgaben unterstützen. Standardmäßig
10. - Mindestanzahl an Container-Slots
-
Die Mindestanzahl an Slots für gleichzeitige Aufgaben, die stets bereitgestellt bleiben, auch wenn keine ausstehenden oder laufenden Aufgaben vorhanden sind. Worker, die diese Kapazität bereitstellen, bleiben aktiv und werden niemals automatisch heruntergefahren.
Eine Flotte, die aufgrund dieser Einstellung über aktive Worker verfügt, jedoch keine ausstehenden oder laufenden Aufgaben hat, hat den Status Standby.
Muss kleiner oder gleich der maximalen Anzahl an Container-Slots sein. Standardmäßig
0. - Freie Container-Slots
-
Die Anzahl der freien Slots für gleichzeitige Aufgaben, die über der aktuellen Anzahl laufender Aufgaben gehalten wird. Wenn alle Worker ausgelastet sind, stellt die Flotte zusätzliche Worker bereit, um den Reservepuffer wiederherzustellen – bis zur maximalen Anzahl an Container-Slots. Neue Aufgaben, die eingehen, solange noch freie Kapazitäten vorhanden sind, werden sofort ausgeführt, ohne auf einen neuen Worker zu warten.
Muss kleiner oder gleich der maximalen Anzahl an Container-Slots sein. Standardmäßig
0. - Verzögerung beim Herunterskalieren
-
Gibt an, wie lange ein Worker nach Abschluss seiner letzten Aufgabe weiterläuft, bevor Code Engine ihn herunterfährt. Ein Worker, dessen letzte Aufgabe innerhalb des Verzögerungsfensters abgeschlossen wurde, übernimmt neue Aufgaben sofort, sobald diese eintreffen.
Geben Sie die Anzahl der Minuten an. Standardmäßig (
0die Anzahl der Worker wird reduziert, sobald sie nicht mehr benötigt werden).
Workload-Muster und relevante Parameter
Welche Parameter verwendet werden sollten, hängt davon ab, wie Aufgaben generiert werden, welche Anforderungen an die Latenz bestehen und wie stabil die Flottenkonfiguration ist.
Einmalige Batch-Workload in der Code Engine-CLI
Sie kennen alle Aufgaben im Voraus, geben sie bei der Erstellung der Flotte an, und die Flotte ist fertig, sobald die letzte Aufgabe abgeschlossen ist. Dies ist das einfachste Modell und erfordert keine spezielle Skalierungskonfiguration außer
der Einstellung, --scale-max um zu steuern, wie viele Aufgaben parallel ausgeführt werden. Verwenden Sie diesen Ansatz, wenn Sie eine spezielle Flottenkonfiguration für eine Reihe von Aufgaben benötigen.
Relevante Option: --scale-max
Einmalige Batch-Workload in der Code Engine-Konsole
Sie kennen alle Aufgaben im Voraus, geben sie bei der Erstellung der Flotte an, und die Flotte ist fertig, sobald die letzte Aufgabe abgeschlossen ist. Dies ist das einfachste Modell und erfordert keine spezielle Skalierungskonfiguration außer der Einstellung Maximale Container-Slots, um zu steuern, wie viele Aufgaben parallel ausgeführt werden. Verwenden Sie diesen Ansatz, wenn Sie eine spezielle Flottenkonfiguration für eine Reihe von Aufgaben benötigen.
Relevanter Parameter: Maximale Anzahl an Container-Slots
Geplante Batch-Workloads in der Code Engine-CLI
Sie verwalten einen Fuhrpark und fügen nach einem festgelegten Zeitplan eine neue Reihe von Aufgaben hinzu. Zwischen den Durchläufen hat die Flotte keine ausstehenden Aufgaben. Der Abstand zwischen den Chargen ist vorhersehbar und lang genug,
sodass es sich nicht lohnt, die Mitarbeiter warmzuhalten; daher bietet die Verwendung von --scale-min, --scale-spare, oder keinen Vorteil --scale-down-delay. Die Flottenkonfiguration bleibt für alle
Chargen stabil.
Relevante Option: --scale-max
Geplante Batch-Workloads in der Code Engine-Konsole
Sie verwalten einen Fuhrpark und fügen nach einem festgelegten Zeitplan eine neue Reihe von Aufgaben hinzu. Zwischen den Durchläufen hat die Flotte keine ausstehenden Aufgaben. Der Abstand zwischen den Chargen ist vorhersehbar und lang genug, sodass es sich nicht lohnt, die Worker im Warmen zu halten; daher bietet die Verwendung von Minimum container slots, Spare container slots oder Scale-down delay keinen Vorteil. Die Flottenkonfiguration bleibt für alle Chargen stabil.
Relevanter Parameter: Maximale Anzahl an Container-Slots
Kontinuierliche, latenzempfindliche Workloads in der Code Engine-CLI
Aufgaben treten im Laufe des Tages unvorhersehbar auf – ausgelöst durch Benutzeraktionen, Sensorwerte oder andere Echtzeitereignisse. Jedes Mal, wenn eine Aufgabe eintrifft, auf das Hochfahren eines neuen Workers zu warten, würde zu einer inakzeptablen Latenz führen. Konfigurieren Sie stattdessen die Flotte so, dass ein Pool an Warm Workers bereitsteht, damit Aufgaben sofort gestartet werden können.
Relevante Optionen: --scale-max, --scale-min, --scale-spare, --scale-down-delay
- Verwenden Sie, um
--scale-maxdie maximale Anzahl der Container-Slots festzulegen, die bereitgestellt werden können. Ihre Flotte skaliert je nach Arbeitslastbedarf bis zu dieser Obergrenze für die Anzahl gleichzeitiger Verbindungen. - Verwenden Sie, um
--scale-minsicherzustellen, dass ein Basis-Worker-Pool stets läuft, auch wenn keine Aufgaben in der Warteschlange stehen. Verwenden Sie diese Option, wenn der Datenverkehr für einen bestimmten Zeitraum auf null sinken kann, Sie aber dennoch einen sofortigen Start wünschen, sobald er wieder einsetzt. - Verwenden Sie,
--scale-spareum eine bestimmte Anzahl freier Aufgabenplätze über der aktuellen Anzahl laufender Aufgaben verfügbar zu halten. Wenn eine Aufgabe eingeht, beginnt die Verarbeitung sofort auf einem bereits laufenden Worker, und die Flotte stellt im Hintergrund weitere Worker bereit, um die freie Kapazität wieder aufzufüllen. - Verwenden Sie, um
--scale-down-delayzu verhindern, dass Worker unmittelbar nach Abschluss ihrer letzten Aufgabe heruntergefahren werden. Diese Einstellung ist hilfreich, wenn Aufgaben in unregelmäßigen Abständen und mit vorübergehenden Lücken dazwischen eingehen, da sie es den Mitarbeitern ermöglicht, verfügbar zu bleiben, und unnötige Skalierungszyklen (Down- und Upscaling) vermeidet. Das Warmhalten von Workern verringert die Latenz beim Start von Aufgaben, minimiert den Overhead bei der Initialisierung von Workern und senkt die Kosten für die wiederholte Bereitstellung neuer Worker.
Kontinuierliche, latenzempfindliche Workloads in der Code Engine-Konsole
Aufgaben treten im Laufe des Tages unvorhersehbar auf – ausgelöst durch Benutzeraktionen, Sensorwerte oder andere Echtzeitereignisse. Jedes Mal, wenn eine Aufgabe eintrifft, auf das Hochfahren eines neuen Workers zu warten, würde zu einer inakzeptablen Latenz führen. Konfigurieren Sie stattdessen die Flotte so, dass ein Pool an Warm Workers bereitsteht, damit Aufgaben sofort gestartet werden können.
Relevante Parameter: Maximale Anzahl an Container-Slots, minimale Anzahl an Container-Slots, freie Container-Slots, Verzögerung beim Herunterskalieren
- Verwenden Sie Maximale Anzahl an Container-Slots, um die maximale Anzahl an Container-Slots festzulegen, die bereitgestellt werden können. Ihre Flotte skaliert je nach Arbeitslastbedarf bis zu dieser Obergrenze für die Anzahl gleichzeitiger Verbindungen.
- Verwenden Sie Minimum Container Slots, um sicherzustellen, dass ein Basis-Worker-Pool immer läuft, auch wenn keine Aufgaben in der Warteschlange stehen. Verwenden Sie diese Option, wenn der Datenverkehr für einen bestimmten Zeitraum auf null sinken kann, Sie aber dennoch einen sofortigen Start wünschen, sobald er wieder einsetzt.
- Verwenden Sie freie Container-Slots, um eine Anzahl freier Aufgaben-Slots bereitzuhalten, die über der aktuellen Anzahl laufender Aufgaben liegt. Wenn eine Aufgabe eingeht, beginnt die Verarbeitung sofort auf einem bereits laufenden Worker, und die Flotte stellt im Hintergrund weitere Worker bereit, um die freie Kapazität wieder aufzufüllen.
- Verwenden Sie die Verzögerung beim Herunterskalieren, um zu verhindern, dass Worker unmittelbar nach Abschluss ihrer letzten Aufgabe herunter skaliert werden. Diese Einstellung ist hilfreich, wenn Aufgaben in unregelmäßigen Abständen und mit vorübergehenden Lücken dazwischen eingehen, da sie es den Mitarbeitern ermöglicht, verfügbar zu bleiben, und unnötige Skalierungszyklen (Down- und Upscaling) vermeidet. Das Warmhalten von Workern verringert die Latenz beim Start von Aufgaben, minimiert den Overhead bei der Initialisierung von Workern und senkt die Kosten für die wiederholte Bereitstellung neuer Worker.