Skalierungsrichtlinien zur Verwaltung der Workload definieren
Skalierungsrichtlinien werden verwendet, um dynamische Cluster-Member ausgehend von konfigurierbaren Metriken zu starten und zu stoppen. Eine Skalierungsrichtlinie kann für alle oder für bestimmte Cluster definiert werden. Wenn keine Richtlinie definiert ist, wird eine integrierte Richtlinie verwendet.
Informationen zu diesem Vorgang
- Es werden mindestens zwei Cluster-Member aktiv gehalten, sofern verfügbar. Die minimale Anzahl kann möglicherweise nicht eingehalten werden, wenn einige oder alle Member die Metrikschwellenwerte überschreiten.
- Es wird ein zusätzliches Cluster-Member gestartet, wenn die durchschnittliche CPU-, Heapspeicher- oder Hauptspeicherbelegung aller aktiven Member 90 % überschreitet.
- Ein Cluster-Member wird gestoppt, wenn die durchschnittliche CPU- und Heapspeicherbelegung unter 30 % fällt.
Es kann eine Skalierungsrichtlinie für alle Cluster mit der Standardskalierungsrichtlinie definiert werden. Die Standardskalierungsrichtlinie übernimmt integrierte Skalierungsrichtlinienmetriken, einschließlich der Werte für die minimale (min) und die maximale (max) Anzahl an Instanzen. Alle vom Benutzer an der Standardskalierungsrichtlinie vorgenommenen Änderungen überschreiben den integrierten Wert. Werte, die in der Standardskalierungsrichtlinie nicht angegeben sind, werden von der integrierten Skalierungsrichtlinie übernommen.
Anders als die Standardskalierungsrichtlinie werden die Skalierungsrichtlinienmetriken nicht von der integrierten Skalierungsrichtlinie bzw. Standardskalierungsrichtlinie übernommen. Die Werte für die minimale und die maximale Anzahl an Instanzen werden jedoch mit den Werten aus der integrierten Richtlinie initialisiert. Da Skalierungsmetriken als optionale Werte betrachtet werden, werden nur die in der Richtlinie angegebenen Metriken in Skalierungsentscheidungen einbezogen. Nicht in die Skalierungsrichtlinie eingeschlossene Metriken werden bei Skalierungsentscheidungen nicht analysiert.
- Standardskalierungsrichtlinie (defaultScalingPolicy)
Sie können eine Standardskalierungsrichtlinie definieren, um alle Cluster zu verwalten, für die keine spezifischere Skalierungsrichtlinie definiert werden muss.
Das folgende Beispiel zeigt, wie eine Standardskalierungsrichtlinie definiert wird, bei der die Mindestanzahl der aktiven Cluster-Member auf drei gesetzt ist.<scalingDefinitions> <defaultScalingPolicy min="3"/> </scalingDefinitions>
- Skalierungsrichtlinie (scalingPolicy)
Sie können eine Skalierungsrichtlinie definieren, um einen oder mehrere Cluster mit zielgruppenspezifischen Kriterien, die in der Skalierungsrichtlinie definiert werden, zu verwalten. Da Skalierungsrichtliniendefinitionen keine Metrikschwellenwerte übernehmen, werden nur angegebene Metrikschwellenwerte überwacht. Alle anderen Schwellenwerte werden ignoriert, da sie sich auf Skalierungsrichtlinien beziehen. Die integrierten Skalierungsrichtlinienwerte für die minimale und die maximale Anzahl an Instanzen werden auch dann berücksichtigt, wenn sie nicht angegeben sind.
Das folgende Beispiel zeigt, wie eine Skalierungsrichtlinie definiert wird, mit der die Schwellenwerte der CPU-Belegung für das Starten und Stoppen von Server in einem Cluster mit dem Namen cluster1 geändert werden.<scalingDefinitions> <scalingPolicy id="cluster1Policy"> <bind clusters="cluster1"/> <metric name="CPU" min="10" max="70"/> </scalingPolicy> </scalingDefinitions>
Der Wert des Attributs clusters des Elements bind ist eine Liste mit durch Kommas getrennten Clusternamen. Einen Stern als Platzhalter für null oder mehr Zeichen können Sie nur am Ende des Namens verwenden. Beispiel:
In diesem Beispiel gilt die Skalierungsrichtlinie für einen Cluster mit dem Namen west und für alle Cluster, deren Name mit south beginnt. Wenn ein Clustername zu mehreren Richtlinien passt, verwendet der Skalierungscontroller die folgenden Regeln für die Wahl einer Richtlinie:<bind clusters="west,south*"/>
- Eine exakte Übereinstimmung hat Vorrang vor einer Platzhalterübereinstimmung.
- Wenn es mehrere Platzhalterübereinstimmungen gibt, wird die Richtlinie mit dem längsten Präfix verwendet.
Die Richtlinie führt die Skalierung basierend auf den Standardwerten für die minimale und maximale Anzahl durch. Im obigen Beispiel werden die Cluster nur basierend auf den angegebenen CPU-Werten (min=10 und max=70) skaliert.
Metrikbasierte Skalierungsentscheidungen werden auf Clusterebene getroffen. Jedes Cluster-Member überwacht seine eigenen Metriken. Die CPU- und Hauptspeichermetrikwerte für einen Server sind entweder die des Server-JVM-Prozesses oder die des Server-Hosts, je nachdem, welche Werte höher sind. Der Metrikwert für den Heapspeicher wird nur vom Server-JVM-Prozess übernommen. Bei der Erkennung einer messbaren Änderung einer überwachten Metrik wird diese Metrik zur Analyse an den Controller gesendet. Alle Cluster-Member-Metriken werden summiert und anschließend wird für jede Metrik ein Clusterdurchschnittswert ermittelt. Der berechnete Wert für jede Metrik wird daraufhin mit dem definierten oberen oder unteren Schwellenwert verglichen, um festzustellen, ob eine Skalierungsentscheidung ausgelöst wird.
Scale-out-Entscheidungen werden basierend auf einzelnen Metriken getroffen. Alle überwachten Metriken werden für den Cluster analysiert. Falls eine der Metriken den maximalen Schwellenwert der Richtlinie überschreitet, wird ein Scale-out-Ereignis ausgelöst. Scale-in-Entscheidungen werden basierend auf allen überwachten Metriken getroffen. Der Clusterdurchschnittswert für jede überwachte Metrik wird analysiert. Wenn alle Metriken unterhalb des minimalen Schwellenwerts der Richtlinie liegen, wird ein Scale-in-Ereignis ausgelöst.
Nachdem eine Skalierungsentscheidung getroffen wurde, wählt der Skalierungscontroller ein Skalierungsziel aus. Das Skalierungsziel ist der Host, auf dem die Aktion zum Stoppen des Servers (für Scale-in) bzw. zum Starten des Servers (für Scale-out) ausgeführt wird. Bei der Bestimmung eines Ziels für eine Scale-out-Aktion werden Metriken auf Hostebene berücksichtigt. Wenn eine der Metriken auf Hostebene ihren maximalen Richtlinienschwellenwert überschreitet, umgeht der Skalierungscontroller diesen Host und wählt einen anderen Host für die Scale-out-Aktion aus.
Die Skalierungsrichtlinie kann die Auswahl des Skalierungsziels beeinflussen. Wenn in der Richtlinie scalingPreference="horizontal" angegeben ist, startet der Skalierungscontroller einen Server auf dem infrage kommenden Host mit den wenigsten aktiven Servern und stoppt einen Server auf dem Host mit den meisten aktiven Servern. Ist in der Richtlinie scalingPreference="vertical" angegeben, startet der Skalierungscontroller einen Server auf dem infrage kommenden Host mit den meisten aktiven Servern und stoppt einen Server auf dem Host mit den wenigsten aktiven Servern. Der Skalierungscontroller versucht, unabhängig davon, welcher Wert für scalingPreference ausgewählt wurde, Server in demselben Cluster auf unterschiedlichen Hosts zu platzieren, sofern möglich.
Weitere Informationen zu den Metriken für scalingPolicy finden Sie unter Scaling Controller.
<scalingDefinitions>
<scalingPolicy id="provisionPolicy">
<bind clusters="defaultStackGroup.deployMember"/>
<hostGroup tags="tag1 tag2"/>
</scalingPolicy>
</scalingDefinitions>
Weitere Informationen zum Festlegen von Verwaltungsmetadatentags finden Sie unter Verwaltungsmetadaten für Liberty-Ressourcen festlegen.
Vorgehensweise
Ergebnisse
Ihre Skalierungsrichtlinien sind jetzt definiert.