Gelegentlich können Sie ein Verhalten bei der Verteilung von Anwendungen feststellen, das Sie nicht erwarten.
Dieser Artikel befasst sich mit einigen häufig gestellten Fragen und erläutert, welche Punkte Sie beachten müssen, wenn
die Anwendungsverteilung nicht erwartungsgemäß funktioniert.
Wo wird der Controller für die Verteilung von Anwendungen ausgeführt?
Verwenden Sie die Administrationskonsole oder
Scripts, um zu bestimmen, wo der Controller für die Verteilung von Anwendungen ausgeführt wird. Klicken Sie in der Administrationskonsole auf
. Führen
Sie auch das Script checkPlacementLocation.jacl aus, um den Server anzuzeigen, auf dem der Controller für die Verteilung von Anwendungen
ausgeführt wird.
Wann startet der Controller für die Verteilung von Anwendungen einen Server?
Der Controller für die Verteilung von Anwendungen
startet einen Server aus folgenden Gründen:
- um die Anforderungen hinsichtlich der Mindestanzahl der für den dynamischen Cluster definierten Anwendungsinstanzen zu erfüllen.
- wenn eine Anforderung, die sich auf inaktivierten dynamischen Cluster bezieht, an einen On Demand Router weitergeleitet wird,
- wenn ein dynamischer Cluster von zusätzlicher Kapazität profitieren kann.
Der Autonomic Request Flow Manager sendet ein Signal, das angibt, welchen Nutzen ein dynamischer Cluster von zusätzlicher Kapazität hätte, und es werden weitere
Instanzen für den dynamischen Cluster gestartet.
Die Nachrichten in der Datei
SystemOut.log
geben Aufschluss darüber, welche Komponenten im Hinblick auf den Controller für die Verteilung von Anwendungen aktiv sind.
Wann stoppt der Controller für die Verteilung von Anwendungen einen Server?
Der Controller für die Verteilung von Anwendungen
stoppt einen Server aus folgenden Gründen:
- Es gibt Vorgaben hinsichtlich des Speicherplatzes für den Knoten.
Der Controller für die Verteilung von Anwendungen kennt die Mindestanforderungen für den dynamischen Cluster
oder die für den dynamischen Cluster benötigte Kapazität und die Systemvorgaben hinsichtlich Prozessorleistung und Speicherplatz. Wenn
der auf einem Knoten verfügbare Speicher knapp wird, versucht der Controller für die Verteilung von Anwendungen,
Instanzen zu stoppen und die Auslagerungsvorgänge des Knotens zu verhindern.
- Der dynamische Cluster ist für verzögerten Anwendungsstart und proaktiven Stopp wegen Inaktivität konfiguriert,
und es besteht keine Nachfrage nach dem dynamischen Cluster.
Wenn keine Nachfrage nach dem dynamischen Cluster besteht, versucht der Controller für die Verteilung von Anwendungen, Instanzen dieses Cluster zu stoppen,
um die Ressourcennutzung eines inaktiven dynamischen Clusters zu beenden.
Warum hat der Controller für die Verteilung von Anwendungen keinen Server gestartet?
Der Controller für die Verteilung von Anwendungen
startet den Server möglicherweise aus folgenden Gründen nicht:
- Die Konfiguration hat die dynamische Anwendungsverteilung nicht aktiviert
- Prüfen Sie, ob der Verteilungscontroller aktiviert ist. Klicken Sie in der Administrationskonsole
auf .
- Stellen Sie sicher, dass die betroffenen Cluster dynamische Cluster sind.
Der Controller für die Verteilung von Anwendungen funktioniert nur für dynamische Cluster.
Klicken Sie in der Administrationskonsole auf . Vergewissern Sie sich, dass im Feld Betriebsmodus der betroffenen Cluster
der Wert Automatisch ausgewiesen ist.
Sollte dies nicht der Fall sein, wählen Sie die dynamischen Cluster, und klicken Sie anschließend auf den Betriebsmodus Automatisch.
Nach der Auswahl des Betriebsmodus "Automatisch" für Ihre dynamischen Cluster klicken Sie auf Modus festlegen.
- Stellen Sie sicher, dass der konfigurierte Mindestzeitraum zwischen den Verteilungsänderungen nicht zu hoch gewählt ist.
Klicken Sie in der Administrationskonsole
auf . Geben Sie im Feld Zeitlicher Mindestabstand zwischen den Verteilungsänderungen einen geeigneten Wert ein. Die zulässigen Werte liegen zwischen
1 Minute und 24 Stunden.
- Zeitlimit für Serveroperationen ist zu niedrig angesetzt
In manchen Fällen startet der Controller für die Verteilung von Anwendungen
einen Server nicht, weil die Serveroperation das Zeitlimit überschreitet. Sie können den Zeitraum
für ein Zeitlimit in der Administrationskonsole konfigurieren. Klicken Sie auf .
Bearbeiten Sie die Einstellung im Feld Zeitlimit für Serveroperation. Wenn Ihre Zelle groß oder das System langsam ist oder das
System ein hohe Workload hat, geben Sie in diesem Feld einen höheren Wert an. Dieser Wert gibt die Startzeit für jeden Server an, das Zeitlimit
richtet sich jedoch nach der Anzahl der Server in Ihrer Zelle. Wenn Sie z. B. 5 Server haben und der Wert auf 10 Minuten festgelegt ist,
tritt die Zeitlimitüberschreitung nach 50 Minuten ein.
- Verfügbarer Speicher nicht ausreichend
Sie können feststellen, wann nicht genügend Speicher vorhanden ist, indem Sie in der Datei
SystemOut.log die Anzahl der fehlgeschlagenen Starts feststellen.
Der Controller für die Verteilung von Anwendungen
nutzt die folgenden Formeln, um die Speicherbelegung eines Members eines dynamischen Clusters zu berechnen:
Wenn keine anderen
Instanzen des dynamischen Clusters aktiv sind (Kaltstart):Nutzung des Serverhauptspeichers = 1,2 * maximale_Größe_des_Heap-Speichers + 64 MB
Wenn andere
Instanzen des dynamischen Clusters aktiv sind, verwendet der Hauptspeicher-Profiler des Controllers für die Verteilung von Anwendungen
die folgende Formel:Nutzung des Serverhauptspeichers = 0,667 * Größe_des_residenten_Speichers + 0,333 * Größe_des_virtuellen_Speichers
Speicherprofile
bleiben beim Neustart des Controllers für die Verteilung von Anwendungen nicht bestehen.
Wenn Sie Fehler beheben möchten, können Sie den Speicher-Profiler
des Controllers für die Verteilung von Anwendungen inaktivieren, indem Sie die angepasste Eigenschaft "memoryProfile.isDisabled"
auf true setzen.
Informationen zu fehlgeschlagenen Starts anzeigen
Hinweis: Die Liste
der fehlgeschlagenen Starts bleibt beim Neustart des Controllers für die Verteilung von Anwendungen bzw. bei Verschiebungen des Controllers zwischen Knoten nicht bestehen.
Sie
können Informationen zu fehlgeschlagenen Starts mit einer der folgenden Optionen anzeigen:
- Verwenden Sie das Script PlacementControllerProcs.jacl, um fehlgeschlagene Serveroperationen abzufragen.
Führen Sie den folgenden Befehl aus:
./wsadmin.sh -profile PlacementControllerProcs.jacl -c "anyFailedServerOperations"
- Verwenden Sie Befehle im Tool "wsadmin", um fehlgeschlagene Starts anzuzeigen.
Sie können beispielsweise
die folgenden Befehle ausführen:
wsadmin>apc = AdminControl.queryNames('WebSphere:type=PlacementControllerMBean,process=dmgr,*')
wsadmin>print AdminControl.invoke(apc,'anyFailedServerOperations')
Wenn der Server wieder verfügbar ist, wird das Flag
für den fehlgeschlagenen Start entfernt. Sie können mit dem folgenden Befehl des Tools "wsadmin" die Server aufzulisten, für die das
Flag für fehlgeschlagenen Start aktiviert ist:
wsadmin>print AdminControl.invoke(apc,'anyFailedServerOperations') OpsManTestCell/xdblade09b09/DC1_xdblade09b09
- Zeigen Sie die fehlgeschlagenen Starts in der Datei SystemOut.log an.
Warum hat der Controller für die Verteilung von Anwendungen mehr Server gestartet als erwartet?
Es werden möglichweise mehr Server
gestartet werden als erwartet, wenn Probleme im Netz oder bei der Datenübertragung verhindern, dass der Controller für die Verteilung von Anwendungen
die Bestätigungsnachricht zum Start eines Servers empfängt. Empfängt der Controller für die Verteilung von Anwendungen keine Bestätigung,
startet er möglicherweise einen weiteren Server.
Wie erfahre ich, wann der Controller für die Verteilung von Anwendungen eine Aktion abgeschlossen hat bzw. abschließen wird?
Sie können
die Aktionen des Controllers für die Verteilung von Anwendungen mit Laufzeit-Tasks überprüfen. Klicken Sie zum Anzeigen von Laufzeit-Tasks auf
. Die Liste der
Laufzeit-Tasks enthält Tasks, die vom Controller für die Verteilung von Anwendungen ausgeführt werden, und bestätigt, dass Änderungen vorgenommen wurden.
Jede Laufzeit-Task hat den Status "Erfolgreich", "Fehlgeschlagen" oder "Unbekannt". Der Status "Unbekannt" bedeutet, dass keine Bestätigung vorliegt, dass die Task
erfolgreich ausgeführt wurde.
Wie kann ich einen Server starten oder stoppen, ohne den Controller für die Verteilung von Anwendungen zu beeinträchtigen?
Wenn Sie
einen Server starten oder stoppen, während der dynamische Cluster sich im Modus "Automatisch" befindet, kann es geschehen, dass der Controller für die Verteilung
von Anwendungen Änderungen an Ihren Aktionen vornimmt. Um Beeinträchtigungen des Controllers für die Verteilung von Anwendungen beim Starten oder Stoppen eines
Servers zu vermeiden, müssen Sie den dynamischen Cluster in den Modus "Manuell" versetzen, bevor Sie einen Server starten oder stoppen.
Wie legt der Controller für die Verteilung von Anwendungen in einem heterogenen System (gemischtes System mit Hardware oder Betriebssystemen)
fest, wo ein Serverstart erfolgt?
Die Zugehörigkeitsrichtlinie für einen dynamischen Cluster
definiert die auswählbaren Knoten, auf denen die Server gestartet werden können.
In dieser Knotengruppe wählt der Controller für die Verteilung von Anwendungen einen Knoten aus,
auf dem ein Server gestartet werden soll. Dabei berücksichtigt er Systemvorgaben, z. B. für verfügbare Prozessor-
und Speicherkapazität. Der Controller trifft keine Entscheidungen über die Verteilung von Servern auf der Basis von Betriebssystemen.
Wann startet der Controller für die Verteilung von Anwendungen einen anderen Server, wenn mein dynamischer Cluster unter Last ist?
Der Controller für die Verteilung von Anwendungen
wirkt mit dem Autonomic Request Flow Manager (ARFM) zusammen und verwendet definierte Servicerichtlinien, um den Zeitpunkt eines Serverstarts zu bestimmen. Servicerichtlinien legen
für Anwendungen die Maximalwerte hinsichtlich Leistung und Priorität fest und unterstützen die autonomen Controller bei Entscheidungen hinsichtlich
der Regulierung des Datenverkehrs und der Kapazitätsbereitstellung. Die Ziele von Servicerichtlinien beeinflussen indirekt
die Aktionen, die vom Controller für die Verteilung von Anwendungen ausgeführt werden. Der Controller für die Verteilung von Anwendungen
orientiert sich bei der Bereitstellung weiterer Server an den Informationen, die er vom Autonomic Request Flow Manager erhält. Diese Informationen
machen eine Aussage darüber, wie viel Kapazität für die gleichzeitigen Anforderungen, die von den ARFM-Warteschlangen bearbeitet werden, erforderlich ist.
Die Anzahl der Anforderungen hängt davon ab, wie viel Kapazität jede Anforderung bei der Verarbeitung benötigt, und davon, wie viele gleichzeitige Anforderungen
der ARFM für angemessen hält. Die Anzahl der gleichzeitigen Anforderungen basiert auf der Anwendungspriorität, dem Anwendungsziel usw.
Die Leistungsziele,
die von den Servicerichtlinien definiert werden, sind keine Garantien. WebSphere Virtual Enterprise kann die Reaktionszeit einer Anwendung
nicht kürzer machen, als durch den entsprechenden Grenzwert zugelassen. Wenn bereits genügend
Kapazität bereitgestellt wurde, um die Nachfrage zu befriedigen, wird keine zusätzliche Kapazität bereitgestellt,
selbst wenn das einen Verstoß gegen das Ziel der Servicerichtlinie bedeutet. WebSphere Virtual Enterprise kann verhindern,
dass unrealistische Ziele von Servicerichtlinien eine Instabilität der Umgebung zur Folge haben.
Wie bestimmt der Controller für die Verteilung von Anwendungen die maximale Größe des Heap-Speichers für meinen Server?
Sie können die Größe des Heap-Speichers für den Server in der Schablone des dynamischen Clusters
ändern. Weitere Informationen hierzu finden Sie im Artikel
Größe des JVM-Heap-Speichers ändern
.
Wie arbeitet der Controller für die Verteilung von Anwendungen mit
Compute Grid zusammen, um Jobs zuzuteilen und Endpunkte auszuwählen?
Wenn der Controller für die Verteilung von
Anwendungen und Compute Grid für die Zusammenarbeit konfiguriert sind, delegiert
Compute Grid die Task der Endpunktauswahl an den Controller. Bei der Jobübergabe
fordert Compute Grid den Verteilungscontroller auf, einen Endpunkt auszuwählen, auf dem der Job ausgeführt werden soll.
Compute Grid gibt in dieser
an den Controller für die Verteilung von Anwendungen gerichteten Anforderung die Jobklasse, die angestrebte Abschlusszeit, die Knoten, die Cluster
oder die Server an, auf denen der Job ausgeführt werden darf. Wenn der Controller einen Endpunkt ausgewählt hat, wird die
entsprechende Information wieder an Compute Grid übergeben. Compute Grid ist dann zuständig für das Starten des Jobs. Wenn
der Controller für die Verteilung von Anwendungen einen Endpunkt auswählt, berücksichtigt er die angestrebte Abschlusszeit für den Job, die im System verfügbaren
Ressourcen, das Ausführungsprofil vorheriger Jobs in derselben Klasse und andere Arbeitsvorgänge einschließlich der Stapeloperationen und Transaktionen, die
das System verarbeiten muss. Der Controller versucht, einen Endpunkt so auszuwählen, dass genügend Ressourcen
vorhanden sind, um den Job vor Ablauf der angestrebten Abschlusszeit abzuschließen. Der Auswahlprozess ist zwar erforderlich, der Controller
wählt jedoch nicht immer sofort einen Endpunkt für den Job aus. In einer solchen Situation wird der Job nicht sofort gestartet. Diese Verzögerung
tritt wahrscheinlich ein, wenn das System klein ist, weitere Stapeloperationen oder Transaktionen ausführen muss und die angestrebte Abschlusszeit für den Job
lang ist.
Wie funktioniert der Controller für die Verteilung von Anwendungen mit WebSphere eXtreme Scale?
Der Controller für die Verteilung von Anwendungen
kann in
WebSphere eXtreme Scale integriert werden. Insbesondere, bevor Sie ein Member eines dynamischen Clusters stoppen,
das einen Container enthält, sendet der Controller eine Nachricht mit der Aufforderung, alle derzeit ausgeführten
Arbeitsvorgänge einzustellen, an den Containerserver und verschiebt alle elementaren Daten bei Bedarf an Sicherungspositionen.
Der Katalogservice wird automatisch im konfigurierten Deployment Manager gestartet. Wenn Sie ein Failover für den Katalogservice konfigurieren möchten, können
ein Grid für den Katalogservice erstellen. Weitere Informationen hierzu finden Sie in der Veröffentlichung
Katalogserviceprozess in einer Umgebung mit WebSphere Application Server starten.
Bei der Anwendungsverteilung
wird auch das Replikationskonzept von WebSphere eXtreme Scale erkannt.
Falls mehrere Instanzen eines dynamischen Clusters erforderlich sind, stellt der Controller für die Verteilung von Anwendungen
sicher, dass die Instanzen auf mehrere Replikationszonen verteilt werden.
Für diese Funktionalität muss der dynamische Cluster mehreren Knotengruppen der Replikationszonen zugeordnet sein.
Weitere Informationen hierzu finden Sie in der Veröffentlichung
Zonen für die Verteilung von Replikaten verwenden.
Warum übernehmen die dynamischen Cluster die Eigenschaften aus der Schablone nicht?
Sie müssen dynamische Cluster im Master-Repository speichern, bevor Sie Änderungen an der Serverschablone vornehmen.
Wenn Sie feststellen, dass Member des dynamischen Clusters die Eigenschaften aus der Schablone nicht übernehmen, wurden
wahrscheinlich in einem noch nicht gespeicherten Arbeitsbereich Änderungen an der Serverschablone vorgenommen.
Sie können dieses Problem beheben, indem Sie den dynamischen Cluster löschen und anschließend erneut erstellen.
Speichern Sie Ihre Änderungen im Master-Repository. Wenn Sie nach dem Anklicken von Fertig stellen
sicherstellen möchten, dass die Änderungen auch wirklich im Master-Repository gespeichert werden, klicken Sie im
Nachrichtenfenster des oberen Rahmens auf Speichern.
Klicken Sie im Fenster In Master-Konfiguration speichern erneut auf Speichern.
Klicken Sie auf Änderungen mit Knoten synchronisieren.
Warum hat mein dynamischer Cluster zu wenige aktive Server?
Falls
Fehler auftreten, weil nicht genügend Server im dynamischen Cluster aktiv sind, können Sie die folgenden
Aktionen ausführen:
- Falls die Knoten in der Knotengruppe nicht sehr häufig verwendet werden, überprüfen Sie, ob die Bedingungen der
Servicerichtlinie erfüllt sind.
Manchmal ist die Richtlinie nicht eindeutig definiert, und das System kann die Bedingungen entgegen Ihrer Erwartungen erfüllen.
Zum Überprüfen oder Ändern einer Servicerichtlinie klicken Sie in der Administrationskonsole
auf Betriebsbedingte Richtlinien > Servicerichtlinien > Vorhandene Richtlinie auswählen.
Überprüfen Sie Zieltyp, Zielwert und Bedeutung der Richtlinie und nehmen Sie gegebenenfalls die erforderlichen Änderungen vor.
- Falls die Knoten in der Knotengruppe stark ausgelastet sind, können Sie die Ziele der Servicerichtlinie
dieses Cluster mit den Zielen der Servicerichtlinie anderer aktiver Cluster vergleichen.
Sollte der diesem Cluster zugewiesene Datenverkehr im Vergleich mit den anderen Clustern eine geringere Bedeutung oder
nicht so strenge Serviceziele haben, liegt es nahe, dass das System für diesen Cluster weniger
Server instanziert.
Zum Überprüfen oder Ändern einer Servicerichtlinie klicken Sie in der Administrationskonsole
auf Betriebsbedingte Richtlinien > Servicerichtlinien > Vorhandene Richtlinie auswählen.
- Wenn die Knotengruppe einen Kapazitätsüberschuss zu haben scheint, die Servicerichtlinien aber trotzdem nicht erfüllt
werden, überprüfen Sie die Konfigurationseinstellungen für den dynamischen Cluster.
Möglicherweise wurden aufgrund der Richtlinieneinstellung "maxInstances" zu wenig Instanzen des dynamischen Clusters
erstellt.