Load Balancer für den PowerCenter Integration Service
Der Load Balancer ist eine Komponente des PowerCenter Integration Service, der Tasks an PowerCenter Integration Service Prozesse verteilt, die auf Knoten in einem Gitter ausgeführt werden. Er gleicht die Anforderungen der Tasks mit der Verfügbarkeit von Ressourcen ab, um den für die Ausführung des Tasks bestgeeigneten PowerCenter Integration Service Prozess zu finden. Er kann Tasks an einen einzelnen Knoten oder knotenübergreifend verteilen.
Sie können die Einstellungen des Load Balancer für die Domäne und für Knoten in der Domäne konfigurieren. Die Einstellungen, die Sie für die Domäne konfigurieren, gelten für alle PowerCenter Integration Services in der Domäne.
Um festzulegen, wie der Load Balancer Tasks verteilt, müssen Sie folgende Einstellungen für die Domäne konfigurieren:
- •Sendemodus. Der Sendemodus bestimmt, wie der Load Balancer die Tasks abfertigt. Sie können den Load Balancer so konfigurieren, dass er die Tasks im einfachen Rundlaufverfahren, im Rundlaufverfahren mit Knotenlademetriken, oder an den Knoten mit der größten verfügbaren Rechenkapazität vergibt.
- •Dienstebene. Dienstebenen geben eine Priorität der Tasks an, die darauf warten, bearbeitet zu werden. Sie können verschiedene Dienstebenen erstellen, die ein Arbeitsablauf-Entwickler den Arbeitsabläufen zuweisen kann.
Für jeden Knoten müssen Sie folgende Load Balancer Einstellungen konfigurieren:
- •Ressourcen. Wird der PowerCenter Integration Service auf einem Gitter ausgeführt, kann der Load Balancer die für einen Task erforderlichen Ressourcen mit den auf jedem Knoten verfügbaren Ressourcen vergleichen. Der Load Balancer verteilt die Tasks an diejenigen Knoten, die über die erforderlichen Ressourcen verfügen. Die Zuordnung der erforderlichen Ressourcen erfolgt in den Taskeigenschaften. Die verfügbaren Ressourcen konfigurieren Sie mit dem Administrator Tool oder mit infacmd.
- •CPU-Profil. Im anpassbaren Sendemodus nutzt der Load Balancer das CPU-Profil zur Bewertung des Berechnungsdurchsatzes jeder CPU und Busarchitektur in einem Gitter. Dieser Wert soll gewährleisten, dass leistungsstärkere Knoten bei der Verteilung vorrangig berücksichtigt werden.
- •Schwellenwerte für die Ressourcen-Bereitstellung. Um zu entscheiden, ob der Load Balancer einen Task zuteilen kann, prüft er einen oder mehrere Schwellenwerte für die Ressourcenbereitstellung. Der Load Balancer prüft je nach Sendemodus verschiedene Schwellenwerte.
Konfigurieren des Sendemodus
Für die Auswahl eines Knotens zum Ausführen eines Tasks verwendet der Load Balancer den Sendemodus. Der Sendemodus wird für die Domäne konfiguriert. Daher nutzen sämtliche PowerCenter Integration Services in einer Domäne denselben Sendemodus.
Beim Ändern des Sendemodus für eine Domäne müssen Sie jeden PowerCenter Integration Service in der Domäne neu starten. Der frühere Sendemodus bleibt wirksam, bis Sie den PowerCenter Integration Service neu starten.
Die Konfiguration des Sendemodus erfolgt in den Domäneneigenschaften.
Der Load Balancer nutzt folgende Dispatchmodi:
- •Rundlauf. Er verteilt die Tasks im Rundlaufverfahren an die verfügbaren Knoten. Auf jedem verfügbaren Knoten prüft er den Schwellenwert für die maximale Anzahl von Prozessen. Würde der Schwellenwert durch Zuweisung eines Tasks überschritten, wird der Knoten ausgeschlossen. Dieser Modus ist der am wenigsten rechenintensive. Er sollte bei gleichmäßiger Belastung des Gitters und ähnlichen Anforderungen der Tasks an die Rechenkapazität genutzt werden.
- •Metrisch basiert. Der Load Balancer evaluiert die Knoten im Rundlaufverfahren. Er prüft alle Schwellenwerte für die Bereitstellung von Ressourcen auf jedem verfügbaren Knoten und schließt den jeweiligen Knoten aus, wenn die Zuweisung eines Tasks zur Überschreitung des Schwellenwerts führen würde. Der Load Balancer evaluiert die Knoten solange, bis er einen findet, der den Task übernehmen kann. Bei ungleichen Anforderungen der Tasks an die Rechenkapazität verhindert dieser Modus die Überlastung der Knoten.
- •Adaptiv. Der Load Balancer stuft die Knoten je nach aktueller CPU-Verfügbarkeit ein. Er prüft alle Schwellenwerte für die Bereitstellung von Ressourcen auf jedem verfügbaren Knoten und schließt den jeweiligen Knoten aus, wenn die Zuweisung eines Tasks zur Überschreitung des Schwellenwerts führen würde. Dieser Modus verhindert die Überlastung der Knoten und gewährleistet beste Leistung auf nicht schwer belasteten Gittern.
In der folgenden Tabelle werden die Unterschiede der Dispatchmodi gegenübergestellt:
Sendemodus | Prüfung der Schwellenwerte für die Bereitstellung von Ressourcen? | Erstellung von Benutzertasksstatistiken? | Nutzung des CPU-Profils? | Umgehung in Dispatch-Warteschlange möglich? |
|---|
Rundlauf | Prüfung der maximalen Prozessanzahl. | Nein | Nein | Nein |
Metrisch basiert | Prüfung aller Schwellenwerte. | Ja | Nein | Nein |
Adaptiv | Prüfung aller Schwellenwerte. | Ja | Ja | Ja |
Ringverteilungs-Dispatch-Modus
Im Ringverteilungs-Dispatch-Modus verteilt die Load Balancer-Tasks entsprechend einer Ringverteilung an die Knoten. Der Load Balancer prüft den Schwellenwert für die Ressourcenbereitstellung auf dem ersten verfügbaren Knoten. Er schickt den Task an diesen Knoten, wenn das Versenden des Tasks nicht bewirkt, dass diese Schwelle überschritten wird. Wenn das Versenden des Tasks dazu führt, dass diese Schwelle überschritten wird, wertet der Load Balancer den nächsten Knoten aus. Das wird fortgeführt, bis ein Knoten gefunden wird, der den Task übernehmen kann.
Die Load Balancer verteilt die auszuführenden Tasks in der Reihenfolge, wie sie vom Workflow Manager oder Scheduler geliefert werden. Der Load Balancer umgeht keinen Task in der Dispatch-Warteschlange. Wenn daher ein ressourcenintensiver Task zuerst in der Dispatch-Warteschlange steht, müssen alle anderen Tasks mit derselben Dienstebene in der Warteschlange warten, bis der Load Balancer den ressourcenintensiven Task verarbeitet hat.
Metrikbasierter Dispatch-Modus
Im metrikbasierten Dispatch-Modus wertet der Load Balancer Knoten in einem Ringverteilungsverfahren aus, bis er einen Knoten findet, der den Task übernehmen kann. Der Load Balancer prüft die Schwellenwerte für die Ressourcenbereitstellung auf dem ersten verfügbaren Knoten. Er schickt den Task an diesen Knoten, wenn das Versenden des Task nicht bewirkt, dass einer dieser Schwellenwerte überschritten wird. Wenn das Versenden des Task dazu führt, dass einer dieser Schwellenwerte überschritten wird, wertet der Load Balancer den nächsten Knoten aus. Das wird fortgeführt, bis ein Knoten gefunden wird, der den Task übernehmen kann.
Um festzustellen, ob ein Task auf einem bestimmten Knoten ausgeführt werden kann, sammelt und speichert der Load Balancer Statistiken aus den letzten drei Läufen des Task. Er vergleicht diese Statistiken mit den Schwellenwerten für die Ressourcenbereitstellung, die für den Knoten definiert sind. Wenn keine Statistiken im Repository vorhanden sind, verwendet die Load Balancer die folgenden Standardwerte:
Der Load Balancer verteilt die auszuführenden Tasks in der Reihenfolge, wie sie vom Workflow Manager oder Scheduler geliefert werden. Der Load Balancer umgeht keine Tasks in der Dispatch-Warteschlange. Wenn daher ein ressourcenintensiver Task zuerst in der Dispatch-Warteschlange steht, müssen alle anderen Tasks mit derselben Dienstebene in der Warteschlange warten, bis der Load Balancer die ressourcenintensive Task verarbeitet hat.
Adaptiver Dispatch-Modus
Web Services HubModus berechnet der Load Balancer die Rechenressourcen auf allen verfügbaren Knoten. Er sucht den Knoten mit der bestverfügbaren CPU und prüft die Ressourcen-Bereitstellungsschwellenwerte auf dem Knoten. Wenn kein Schwellenwert hierdurch überschritten wird, sendet er die Tasks. Zu einem Knoten, der keine freie Swap-Kapazität besitzt, sendet der Load Balancer keine Tasks.
Web Services HubModus kann der Load Balancer die Rechen-Ressourcen auf dem Knoten anhand des CPU-Profils klassifizieren.
Um den bestgeeigneten Knoten zum Ausführen eines Tasks zu bestimmen, sammelt der Load Balancer Statistiken der letzten drei Durchläufe des Task und vergleicht sie mit den Auslastungsmetriken des Knotens Enthält das Repository keine Statistiken, verwendet der Load Balancer folgende Standardwerte:
- •40 MB Speicherkapazität
- •15 % CPU
Web Services HubModus ist die Reihenfolge, in der der Load Balancer Tasks aus der Dispatch-Warteschlange versendet, von den Anforderungen der Task und der Dispatch-Priorität abhängig. Beispiel: Warten mehrere Tasks mit derselben Dienstebene in der Dispatch-Warteschlange und stehen keine adequaten Rechenressourcen zur Verfügung, um eine ressourcenintensive Task auszuführen, reserviert der Load Balancer einen Knoten für den ressourcenintensiven Task und fährt fort, weniger intensive Tasks zu anderen Knoten zu versenden.
Dienstebenen
Dienstebenen legen die Priorität unter den Aufgaben fest, die darauf warten, versendet zu werden.
Wenn der Load Balancer mehr Aufgaben zu versenden hat als der der PowerCenter Integration Service gleichzeitig ausführen kann, stellt der Load Balancer diese Aufgaben in die Dispatch-Warteschlange. Wenn mehrere Aufgaben in der Dispatch-Warteschlange anstehen, bestimmt der Load Balancer anhand der Dienstebenen die Reihenfolge, in der die Aufgaben aus der Warteschlange verteilt werden.
Dienstebene sind Domäneneigenschaften. Deshalb können Sie für alle Repositorys in einer Domäne die gleichen Dienstebenen verwenden. Sie erstellen und bearbeiten Dienstebenen in den Domäneneigenschaften der Domäne oder mithilfe von infacmd.
Wenn Sie eine Dienstebene erstellen, kann ein Arbeitsablaufentwickler diese im Workflow Manager einem Arbeitsablauf zuweisen. Alle Aufgaben in einem Arbeitsablauf haben dieselbe Dienstebene. Der Load Balancer setzt Dienstebenen zur Verteilung von Aufgaben in der Dispatch-Warteschlange ein. Zum Beispiel: Sie erstellen zwei Dienstebenen:
- •Die Dienstebene "Niedrig" hat eine Dispatch-Priorität von 10 und eine maximale Dispatch-Wartezeit von 7.200 Sekunden.
- •Die Dienstebene "Hoch" hat eine Dispatch-Priorität von 2 und eine maximale Dispatch-Wartezeit von 1,800 Sekunden.
Wenn mehrere Aufgaben in der Dispatch-Warteschlange stehen, verteilt der Load Balancer Aufgaben mit der hohen Dienstebene vor Aufgaben mit niedriger Dienstebene, weil die Dienstebene "Hoch" eine höhere Dispatch-Priorität hat. Wenn eine Aufgabe mit Dienstebene "Niedrig" zwei Stunden lang in der Dispatch-Warteschlange wartet, ändert der Load Balancer die Dispatch-Priorität die höchste Priorität, sodass die Aufgabe nicht auf unbestimmte Zeit in der Dispatch-Warteschlange bleibt.
Das Administrator Tool enthält eine Standard-Dienstebene mit dem Namen Default und einer Dispatch-Priorität von 5 und einer maximale Dispatch-Wartezeit von 1800 Sekunden. Sie können die Standard-Dienstebene aktualisieren, aber sie kann nicht gelöscht werden.
Wenn Sie eine Dienstebene entfernen, aktualisiert der Workflow Manager keine Aufgaben, die die Dienstebene verwenden. Wenn eine Arbeitsablauf-Dienstebene in der Domäne nicht vorhanden ist, sendet der Load Balancer die Aufgaben mit einer Standarddienstebene.
Dienstebenen erstellen
Servicelevel im Administrator Tool erstellen.
1Wählen Sie im Administrator Tool ein Domäne im Navigator aus.
2Klicken Sie auf die Registerkarte Eigenschaften.
3Im Bereich Servicelevelverwaltung, klicken Sie auf Hinzufügen.
4Legen Sie die Werte für die Serviceleveleigenschaften fest.
5Klicken Sie auf OK.
6Um einen Servicelevel zu entfernen, klicken Sie für den Servicelevel auf die Schaltfläche Entfernen, der entfernt werden soll.
Konfigurieren von Ressourcen
Beim Konfigurieren des PowerCenter Integration Service zum Ausführen auf einem Gitter und zum Prüfen der Ressourcen-Anforderungen versendet der Load Balancer Tasks basierend auf den auf jedem Knoten verfügbaren Ressourcen an die Knoten. Sie konfigurieren den PowerCenter Integration Service, um die verfügbaren Ressourcen in den PowerCenter Integration Service Eigenschaften im Informatica Administrator zu prüfen.
Die Zuweisung der von einer Task benötigten Ressourcen erfolgt in den Task-Eigenschaften des PowerCenter Workflow Manager.
Sie definieren die in jedem Knoten verfügbaren Ressourcen im Administrator Tool. Geben Sie folgenden Ressourcentypen an:
- •Verbindung. Jede bei PowerCenter installierte Ressource, wie ein Plug-in oder ein Verbindungsobjekt. Beim Erstellen eines Knotens stehen alle Verbindungsressourcen per Standard zur Verfügung. Deaktivieren Sie Verbindungsressourcen, die nicht für den Knoten zur Verfügung stehen.
- •Datei/Verzeichnis. Eine benutzerdefinierte Ressource, die für den Knoten zur Verfügung stehende Dateien oder Verzeichnisse definiert, wie Parameterdateien oder Dateiserververzeichnisse.
- •Benutzerdefiniert. Eine benutzerdefinierte Ressource, die beliebige andere dem Knoten zur Verfügung stehende Ressourcen identifiziert. Beispielsweise können Sie anhand einer benutzerdefinierten Ressource eine bestimmte Datenbank-Client-Version identifizieren.
Aktivieren und deaktivieren Sie für den Knoten verfügbare Ressourcen auf der Registerkarte Ressourcen im Administrator Tool oder anhand von infacmd.
Berechnen des CPU-Profils
Im anpassbaren Sendemodus nutzt der Load Balancer das CPU-Profil zur Bewertung des Berechnungsdurchsatzes jeder CPU und Busarchitektur in einem Gitter. So wird gewährleistet, dass Knoten mit höherer Verarbeitungskapazität Dispatch-Priorität erhalten. Dieser Wert wird nicht für den Sendemodus auf Zufallsbasis (Round-Robin) oder den messgrößenbasierten Sendemodus verwendet.
Das CPU-Profil ist ein Indikator der Verarbeitungskapazität eines Knotens verglichen mit einem Baseline-System. Das Baseline-System ist ein 2,4 GHz Pentium-Computer, auf dem Windows 2000 läuft. Beispiel: Wenn ein SPARC 480 MHz Computer 0,28 Mal so schnell ist wie der Baseline-Computer, muss das CPU-Profil für den SPARC-Computer auf 0,28 eingestellt werden.
Das CPU-Profil ist per Standard auf 1.0 eingestellt. Zur Berechnung des CPU-Profils für einen Knoten wählen Sie den Knoten im Navigator und klicken Sie auf Aktionen > CPU-Profil-Benchmark neu berechnen. Um den genauesten Wert zu erhalten berechnen Sie das CPU-Profil, wenn sich der Knoten im Leerlauf befindet. Die Berechnung dauert ca. fünf Minuten und lastet die CPU des Computers zu 100 % aus.
Alternativ können Sie das CPU-Profil anhand des infacmd berechnen oder indem Sie die Knoteneigenschaften bearbeiten und den Wert manuell aktualisieren.
Definieren von Schwellenwerten für die Bereitstellung von Ressourcen
Der Load Balancer teilt den auf einem Knoten laufenden PowerCenter Integration Service Prozessen Tasks zu. Er kann fortfahren, einem Knoten Tasks zuzuteilen, solange die Schwellenwerte für die Ressourcenzuteilung für den betreffenden Knoten nicht überschritten wurden. Hat der Load Balancer mehr Sitzungs- und Befehlstasks zuzuteilen, als der PowerCenter Integration Service gleichzeitig ausführen kann, stellt der Load Balancer die Tasks in die Dispatch-Warteschlange. Sobald ein PowerCenter Integration Service Prozess verfügbar wird, teilt er die Tasks aus der Warteschlange zu.
Für jeden Knoten in einer Domäne können Sie folgende Schwellenwerte für die Ressourcenzuteilung definieren:
- •Maximale Länge der CPU-Ausführungswarteschlange Maximale Anzahl an ausführbaren Threads, die auf CPU-Ressourcen auf dem Knoten warten. Der Load Balancer zählt Threads, die auf Diskette oder Netzwerk-I/Os warten, nicht mit. Wenn Sie diesen Schwellenwert auf einem Knoten mit 4 CPUs, auf dem vier Threads ausgeführt werden und zwei ausführbare Threads warten, auf 2 einstellen, teilt der Load Balancer diesem Knoten keine neuen Tasks zu.
Dieser Schwellenwert begrenzt die Kontext-Schalt-Gesamtmenge. Sie können diesen Schwellenwert auf einen niedrigen Wert einstellen, um Rechenressourcen für andere Anwendungen zu reservieren. Möchten Sie, dass der Load Balancer diesen Schwellenwert ignoriert, setzen Sie ihn auf einen hohen Wert, wie etwa 200. Voreingestellt ist 10.
Der Load Balancer verwendet diesen Schwellenwert im metrisch basierten und Web Services HubModus.
- •Maximaler Speicher % Maximaler Prozentsatz des virtuellen Speichers, der auf dem Knoten relativ zur Gesamtgröße des Speichers zugeordnet ist. Wenn Sie diesen Schwellenwert bei einem Knoten auf 120% einstellen und der virtuelle Speicher auf dem Knoten zu über 120% genutzt wird, teilt der Load Balancer dem Knoten keine neuen Tasks zu.
Der Standardwert für diesen Schwellenwert ist 150%. Diesen Schwellenwert müssen Sie größer 100% einstellen, wenn bei der Taskverteilung mehr virtueller Speicher zugeteilt werden soll, als die physische Speichergröße erlaubt. Soll der Load Balancer diesen Schwellenwet ignorieren, müssen Sie ihn auf einen hohen Wert einstellen, wie etwa 1.000.
Der Load Balancer verwendet diesen Schwellenwert im metrisch basierten und Web Services HubModus.
- •Maximale Anzahl der Prozesse. Die maximale Anzahl der ausgeführten Prozesse, die für jeden PowerCenter Integration Service Prozess, der auf dem Knoten ausgeführt wird, zulässig sind. Dieser Schwellenwert gibt die maximale Anzahl der ausgeführten Sitzungs- oder Befehlstasks an, die für jeden auf dem Knoten laufenden PowerCenter Integration Service Prozess zulässig sind. Beispiel: Stellen Sie diesen Schwellenwert auf 10 ein, wenn zwei PowerCenter Integration Services auf dem Knoten ausgeführt werden, beträgt die maximale Anzahl der für den Knoten zulässigen Sitzungstasks 20 und die maximale Anzahl der für den Knoten zulässigen Befehlstasks ebenfalls 20. Daher können maximal 40 Prozesse gleichzeitig ausgeführt werden.
Für diesen Schwellenwert ist 10 voreingestellt. Damit der Load Balancer diesen Schwellenwert ignoriert, müssen Sie ihn auf einen hohen Wert, wie etwa 200, einstellen. Wenn Sie möchten, dass der Load Balancer dem Knoten überhaupt keine Tasks zuteilt, stellen Sie diesen Schwellenwert auf 0.
Der Load Balancer verwendet diesen Schwellenwert in allen Dispatch-Modi.
Die Definition der Schwellenwerte für die Ressourcenzuteilung erfolgt in den Knoteneigenschaften.