Mit dem WebSphere Message Broker Explorer können Sie Ressourcenstatistikdaten für Ihre Ausführungsgruppen in den Ansichten 'Broker Resources' (Brokerressourcen) und 'Broker Resources Graph' (Brokerressourcen - Diagramm) anzeigen.
Sie können die Erfassung von Ressourcenstatistikdaten auch anzeigen, indem Sie das Thema subskribieren, zu dem Statistikdaten veröffentlicht werden. Ausführliche Informationen hierzu finden Sie unter Subskriptionen für Statistikberichte einrichten.
So zeigen Sie die Ressourcenstatistik im WebSphere Message Broker Explorer an:
Viele Tools, die betriebssystemspezifisch sind, geben den Gesamtspeicher an, der von der Ausführungsgruppe verwendet wird, sie zeigen jedoch nicht an, dass der Speicher zwischen der Java™-Verarbeitung und sonstiger Verarbeitung in der Ausführungsgruppe aufgeteilt wird. Im Feld CommittedMemoryInMB können Sie sehen, wie viel Speicher der JVM derzeit zugeordnet ist. Überprüfen Sie anschließend im Feld MaxMemoryInMB, wie viel Speicherplatz maximal zugeordnet werden kann.
Um festzustellen, wie oft die JVM eine Garbage-Collection ausführt, überprüfen Sie im Feld CumulativeNumberOfGCCollections, ob die Rate der Collections sich erhöht. Die Garbage-Collection ist ein normaler Prozess und wird deshalb bis zu einem gewissen Grad erwartet. Eine zu häufige Ausführung der Garbage-Collection kann jedoch die Leistung beeinträchtigen.
Um festzustellen, ob die Garbage-Collection derzeit zu häufig ausgeführt wird, überwachen Sie den Wert von CumulativeGCTimeInSeconds. Wenn dieser Wert sich in jedem 20 Sekunden dauernden Statistikintervall um mehr als 2 Sekunden erhöht, versuchen Sie, die maximale Größe des JVM-Heapspeichers für Ihre Ausführungsgruppe mit dem Befehl mqsichangeproperties zu erhöhen. Sie können auch alle benutzerdefinierten Java-Knoten und JavaCompute-Knoten überprüfen, die in Ihren implementierten Nachrichtenflüssen enthalten sind, um sicherzustellen, dass sie nicht viele Objekte erstellen und löschen, die wiederverwendet werden könnten. Häufige Löschvorgänge können dazu beitragen, dass die Garbage-Collection zu häufig ausgeführt wird.
Ändern Sie diese Werte schrittweise und überprüfen Sie die Ergebnisse, um die optimalen Einstellungen für Ihre Umgebung zu ermitteln.
Ein Nachrichtenfluss führt eine syntaktische Analyse der Eingabenachrichten aus und kann mehrere Ausgabenachrichten erstellen. Diese Nachrichten können große Bitströme oder große Nachrichtenbaumstrukturen aufweisen. Die für diese Nachrichtenverarbeitung zuständigen Parser benötigen daher unter Umständen sehr viel Arbeitsspeicher. Mit den Parserstatistiken können Sie feststellen, ob die Parser von Nachrichtenflüssen mehr Arbeitsspeicher als erwartet verbrauchen. Wenn dies der Fall ist, empfiehlt es sich unter Umständen, diese Nachrichtenflüsse in separaten Ausführungsgruppen zu implementieren. Eventuell lässt sich die ESQL- oder Java-Plugin-API-Verarbeitung auch so optimieren, dass große Nachrichten oder Umsetzungen effizienter verarbeitet werden.
Wenn ein Nachrichtenfluss eine ungültige Nachricht empfängt oder versucht, eine ungültige Nachricht zu schreiben, wird dieser Vorgang ziemlich sicher vom Parser abgelehnt. Anhand der Parserstatistiken zu den Nachrichten können Sie ermitteln, ob innerhalb eines Nachrichtenflusses im Vergleich zu den erfolgreich verarbeiteten Nachrichten sehr viele Eingabe- oder Ausgabenachrichten abgelehnt werden.
Die Erstellung von Ausgangssockets kann kostenintensiv sein und die Anzahl der auf einem Computer verfügbaren Sockets ist begrenzt. Eine häufigere Wiederverwendung von Sockets kann daher die Leistung verbessern. Wenn die Auslastung konstant und gleichmäßig ist, gibt der Wert für TotalSockets einen anfänglichen Aktivitätszeitraum an, der sich anschließend verkürzt, wenn die Ausführungsgruppe mit der Wiederverwendung von Sockets beginnt.
Es wird ein stetiger Anstieg des Werts TotalSockets im Laufe der Zeit erwartet, weil Sockets nach einem bestimmten Inaktivitätszeitraum oder nach einer sehr häufigen Verwendung geschlossen werden.
Wenn sich der Wert für TotalSockets im Laufe der Zeit erheblich erhöht, kann dieser Trend ein Anzeichen dafür sein, dass Ausgangssockets nicht wiederverwendet werden.
Wenn Ihre Nachrichtenflüsse HTTPRequest-Knoten enthalten, stellen Sie sicher, dass Sie die Keepalive-Eigenschaft HTTP/1.1 Keepalive-Paket aktivieren festgelegt haben.
Überprüfen Sie außerdem, ob der Endpunkt, der aufgerufen wird, Keepalive-Sockets verwendet.
Die Werte für TotalMessages geben an, wie ausgelastet die einzelnen Endpunkte sind. Der Wert im Summensatz gibt an, wie viel Aktivität in der gesamten Ausführungsgruppe aufgetreten ist.
Die Werte der Felder SentMessageSize_* und ReceivedMessageSize_* ergeben ein Profil der Nachrichtengrößen, die von jedem Endpunkt empfangen bzw. gesendet werden.
Wenn anhand der Statistikdaten deutlich wird, dass die Anzahl der Aufrufenden, die auf Verbindungen warten, hoch ist und die Wartezeit ansteigt, können Sie den Pool vergrößern, indem Sie den Wert der Eigenschaft MaxConnectionPoolSize für den konfigurierbaren JDBCProvider-Service erhöhen.
Als Alternative dazu können Sie auch versuchen, die Anzahl der für den Nachrichtenfluss zusätzlich konfigurierten Instanzen zu verringern.
Die Erstellung von Ausgangssockets kann kostenintensiv sein und die Anzahl der auf einem Computer verfügbaren Sockets ist begrenzt. Eine häufigere Wiederverwendung von Sockets kann daher die Leistung verbessern. Wenn die Auslastung konstant und gleichmäßig ist, gibt der Wert für TotalSockets einen anfänglichen Aktivitätszeitraum an, der sich anschließend verkürzt, wenn die Ausführungsgruppe mit der Wiederverwendung von Sockets beginnt.
Es wird ein stetiger Anstieg des Werts TotalSockets im Laufe der Zeit erwartet, weil Sockets nach einem bestimmten Inaktivitätszeitraum oder nach einer sehr häufigen Verwendung geschlossen werden.
Wenn sich der Wert für TotalSockets im Laufe der Zeit erheblich erhöht, kann dieser Trend ein Anzeichen dafür sein, dass Ausgangssockets nicht wiederverwendet werden.
Wenn Ihre Nachrichtenflüsse HTTPRequest-Knoten enthalten, stellen Sie sicher, dass Sie die Keepalive-Eigenschaft HTTP/1.1 Keepalive-Paket aktivieren festgelegt haben.
Überprüfen Sie außerdem, ob der Endpunkt, der aufgerufen wird, Keepalive-Sockets verwendet.