Sie können die Leistung Ihrer Anwendungen mit den PMI-Modulen (Performance Monitoring Infrastructure) überwachen.
objectGridModule
Das Modul "objectGridModule" enthält eine Zeitstatistik: Antwortzeit der Transaktion.
Eine Transaktion ist wie folgt definiert:
Dauer zwischen dem Aufruf der Methode "
Session.begin" und dem Aufruf der Methode
"
Session.commit". Diese Dauer wird als Antwortzeit der Transaktion verfolgt.
Das Stammelement ("root") des Moduls "the objectGridModule" dient
als Einstiegspunkt für die Statistiken von
WebSphere eXtreme Scale.
Dieses Stammelement hat ObjectGrids als untergeordnete Elemente, die dieselben
Transaktionstypen wie deren untergeordnete Elemente haben.
Die Antwortzeitstatistik wird jedem Transaktionstyp zugeordnet.
Abbildung 1. Struktur des Moduls "ObjectGridModule"
Die folgende Abbildung zeigt eine ObjectGridModule-Beispielstruktur.
In diesem Beispiel sind zwei ObjectGrid-Instanzen im System vorhanden:
ObjectGrid A und ObjectGrid B. Die ObjectGrid-Instanz A hat zwei Typen von Transaktionen:
A und Standard. Die ObjectGrid-Instanz B hat nur den Transaktionstyp "Standard".
Abbildung 2. Beispielstruktur für das Modul "ObjectGridModule"
Transaktionstypen werden
von Anwendungsentwicklern definiert, weil sie wissen, welche Typen von Transaktionen in ihren Anwendungen
verwendet werden.
Der Transaktionstyp wird mit der folgenden Methode "
Session.setTransactionType(String)" gesetzt:
/**
* Legt den Transaktionstyp für künftige Transaktionen fest.
*
* Nach dem Aufruf dieser Methode haben alle künftigen Transaktionen denselben
* Typ, bis ein anderer Transaktionstyp festgelegt wird. Wenn Sie keinen
* Transaktionstyp festlegen, wird der Standardtransaktionstyp TRANSACTION_TYPE_DEFAULT
* verwendet.
*
* Transaktionstypen werden hauptsächlich für die Verfolgung statistischer Daten
* verwendet. Benutzer können Typen von Transaktionen, die in einer Anwendung
* ausgeführt werden, vordefinieren. Die Idee ist, Transaktionen mit denselben
* Merkmalen in einer Kategorie (Typ) zusammenzufassen, so dass jeweils eine
* einzige Statistik zur Transaktionsantwortzeit verwendet werden kann, um den
* jeweiligen Transaktionstyp zu verfolgen.
*
* Diese Verfolgung ist hilfreich, wenn Ihre Anwendung unterschiedliche
* Transaktionstypen hat.
* Einige Typen von Transaktionen, wie z. B. Aktualisierungstransaktionen,
* haben eine längere Verarbeitungszeit als andere Transaktionen, wie z. B.
* Lesetransaktionen. Wenn Sie den Transaktionstyp verwenden, können
* unterschiedliche Transaktionen über unterschiedliche Statistiken verfolgt
* werden, so dass die Statistiken hilfreicher sind.
*
* @param tranType Der Transaktionstyp für künftige Transaktionen.
*/
void setTransactionType(String tranType);
Im folgenden Beispiel wird der Transaktionstyp auf
updatePrice gesetzt:
// Transaktionstyp auf "updatePrice" setzen.
// Die Zeit zwischen session.begin() und session.commit() wird in der
// Zeitstatistik für "updatePrice" verfolgt.
session.setTransactionType("updatePrice");
session.begin();
map.update(stockId, new Integer(100));
session.commit();
Die erste Zeile gibt an, dass der folgende
Transaktionstyp "updatePrice" ist. In dem Beispiel ist eine Statistik "updatePrice" in der
ObjectGrid-Instanz vorhanden, die dem Session-Objekt entspricht.
Mit JMX-Schnittstellen (Java Management Extensions) können
Sie die Transaktionsantwortzeit für Transaktionen des Typs "updatePrice" abrufen.
Sie können auch die zusammengefasste Statistik für alle Transaktionstypen in der angegebenen
ObjectGrid-Instanz abrufen.
mapModule
Das Modul "mapModule" enthält drei Statistiken, die sich auf
eXtreme-Scale-Maps beziehen:
- Map hit rate - BoundedRangeStatistic:
Verfolgt die Trefferrate einer Map. Die Trefferrate ist ein variabler Wert zwischen 0
und 100 einschließlich, der den Prozentsatz der Map-Treffer in Relation zu den get-Operationen für die Map darstellt.
- Number of entries-CountStatistic: Verfolgt die Anzahl der Einträge in der Map.
- Loader batch update response time-TimeStatistic:
Verfolgt die Antwortzeit für Aktualisierungsoperationen im Stapelbetrieb des Loaders.
Das Stammelement ("root") des Moduls "mapModule" dient als Einstiegspunkt für die
ObjectGrid-Map-Statistiken. Dieses Stammelement hat Maps als untergeordnete Elemente, die dieselben
Transaktionstypen wie deren untergeordnete Elemente haben.
Jede Map-Instanz hat die drei aufgelisteten Statistiken.
Die Struktur des Moduls "mapModule" ist in der folgenden
Abbildung dargestellt:
Abbildung 3. Struktur des Moduls "mapModule"
Die folgende Abbildung zeigt eine Beispielstruktur für das Modul "mapModule":
Abbildung 4. Beispielstruktur für das Modul "mapModule"
Modul "hashIndexModule"
Das Modul "hashIndexModule" enthält
die folgenden Statistiken, die sich auf Indizes auf Map-Ebene beziehen:
- Find Count-CountStatistic: Die Anzahl der Aufrufe für
die Indexoperation "find".
- Collision Count-CountStatistic: Die Anzahl der Kollisionen für die Operation "find".
- Failure Count-CountStatistic: Die Anzahl der Fehler für die Operation "find".
- Result Count-CountStatistic: Die Anzahl der von der Operation "find" zurückgegebenen
Schlüssel.
- BatchUpdate Count-CountStatistic: Die
Anzahl der für diesen Index ausgeführten Aktualisierungen im Stapelbetrieb.
Wenn die entsprechende Map geändert wird, wird die Methode "doBatchUpdate()" des Index aufgerufen. Diese Statistik teilt Ihnen mit, wie oft sich der Index ändert bzw. aktualisiert wird.
- Find Operation Duration Time-TimeStatistic:
Ausführungsdauer der Operation "find".
Das Stammelement ("root") des Moduls "hashIndexModule" "root"
dient als Einstiegspunkt für die HashIndex-Statistik.
Das Stammelement hat ObjectGrids als untergeordnete Elemente, ObjectGrids haben
Maps als untergeordnete Elemente, die wiederum
HashIndex-Instanzen als untergeordnete Elemente und Blattknoten der Baumstruktur haben.
Jede HashIndex-Instanz hat die drei aufgelisteten Statistiken.
Die Struktur des Moduls "hashIndexModule" wird in der folgenden Abbildung gezeigt:
Abbildung 5. Struktur des Moduls "hashIndexModule"
Die folgende Abbildung zeigt eine Beispielstruktur für das Modul "hashIndexModule":
Abbildung 6. Beispielstruktur für das Modul "hashIndexModule"
Modul "agentManagerModule"
Das Modul "agentManagerModule" enthält
Statistiken, die sich auf die Agenten auf Map-Ebene beziehen:
- Reduce Time: TimeStatistic - Die Zeit, die der Agent für die Ausführung
der Operation "reduce" benötigt.
- Total Duration Time: TimeStatistic -
Die Gesamtzeit, die der Agent für die Ausführung aller Operationen benötigt.
- Agent Serialization Time: TimeStatistic -
Die Zeit für die Serialisierung des Agenten.
- Agent Inflation Time: TimeStatistic -
Die Zeit, die benötigt wird, um den Agenten im Server zu dekomprimieren.
- Result Serialization Time: TimeStatistic -
Die Zeit für die Serialisierung der Ergebnisse des Agenten.
- Result Inflation Time: TimeStatistic -
Die Zeit für die Dekomprimierung der Ergebnisse des Agenten.
- Failure Count: CountStatistic - Die Anzahl der Fehler des Agenten.
- Invocation Count: CountStatistic - Die Anzahl der AgentManager-Aufrufe.
- Partition Count: CountStatistic - Die Anzahl der
Partitionen, an die der Agent gesendet wird.
Das Stammelement ("root" des Moduls "agentManagerModule") dient als Einstiegspunkt für
die AgentManager-Statistiken. Dieses Stammelement
hat ObjectGrids als untergeordnete Elemente, die ObjectGrids haben Maps als untergeordnete Elemente, die wiederum
AgentManager-Instanzen als untergeordnete Elemente und Blattknoten der Baumstruktur haben.
Jede AgentManager-Instanz hat Statistiken.
Abbildung 7. Struktur des Moduls "agentManagerModule"
Abbildung 8. Beispielstruktur für das Modul "agentManagerModule"
Modul "queryModule"
Das Modul "queryModule" enthält Statistiken, die sich auf
eXtreme-Scale-Abfragen beziehen:
- Plan Creation Time: TimeStatistic -
Die Zeit für die Erstellung des Abfrageplans.
- Execution Time: TimeStatistic - Die Zeit für die Ausführung der Abfrage.
- Execution Count: CountStatistic - Die Anzahl der Abfrageläufe.
- Result Count: CountStatistic - Der Zähler für jede Ergebnismenge
jedes Abfragelaufs.
- FailureCount: CountStatistic - Die Anzahl der Abfragefehler.
Das Stammelement ("root") des Moduls "queryModule" dient als Einstiegspunkt
für die Abfragestatistiken. Dieses Stammelement hat ObjectGrids als
untergeordnete Elemente, die Query-Objekt als untergeordnete Elemente und Blattknoten der Baumstruktur haben.
Jede Query-Instanz hat die drei aufgelisteten Statistiken.
Abbildung 9. Struktur des Moduls "queryModule"
Abbildung 10. Beispielstruktur für das Modul "queryModule"