Vous pouvez surveiller les performances de vos applications avec
les modules PMI (Performance Monitoring Infrastructure).
objectGridModule
Le module objectGridModule contient une
statistique de durée : le temps de réponse des transactions. Une transaction est définie
comme la durée entre l'appel de méthode
Session.begin et
l'appel de méthode
Session.commit. Cette durée est suivie
comme temps de réponse des transactions. L'élément
racine de la structure objectGridModule, "root", sert de point d'entrée aux
statistiques de
WebSphere eXtreme Scale. Cet élément racine contient des ObjectGrids comme
éléments enfant et ces derniers possèdent des types de transaction
comme éléments enfant. Les statistiques de temps de réponse sont
associées à chaque type de transaction.
Figure 1. Structure de module ObjectGridModule
Le diagramme
ci-après illustre un exemple de structure ObjectGridModule. Dans cet
exemple, il existe deux instances ObjectGrid sur le système : ObjectGrid A et
ObjectGrid B. L'instance ObjectGrid A possède deux types de transaction : A et
default. L'instance ObjectGrid B ne possède que le type de transaction default.
Figure 2. Exemple de structure de module ObjectGridModule
Les
types de transaction sont définis par les développeurs d'applications
car ils savent quels types de transaction sont utilisés par leurs applications. Le
type de transaction est défini à l'aide de la méthode
Session.setTransactionType(String) suivante :
/**
* Définit le type de transaction des transactions futures.
*
* Une fois que cette méthode a été appelée, toutes les transactions futures sont de
* même type jusqu'à ce qu'un autre type de transaction ait été défini. Si aucun type
* de transaction n'est défini, le type de transaction TRANSACTION_TYPE_DEFAULT
* par défaut est utilisé.
*
* Les types de transaction sont principalement utilisés à des fins de suivi des données statistiques.
* Les utilisateurs peuvent prédéfinir les types des transactions qui sont exécutées
* dans une application. L'idée consiste à regrouper les transactions de mêmes caractéristiques
* dans une même catégorie (type), afin qu'une statistique de temps de réponse
* des transactions puisse être utilisée pour rechercher chaque type de transaction.
*
* Ce suivi est utile si votre application possède différents types de
* transactions.
* Parmi eux, certains types de transaction, comme les transactions de mise à
* jour, possèdent un délai de traitement supérieur à celui d'autres
* transactions, telles que les transactions en lecture seule. Si le type de
* transaction est utilisé, les différentes transactions sont recherchées par des
* statistiques différentes, afin que ces dernières puissent être plus utiles.
*
* @param tranType Type de transaction des transactions futures.
*/
void setTransactionType(String tranType);
L'exemple suivant spécifie
updatePrice comme type de transaction :
// Spécifiez le type de transaction updatePrice
// La durée entre session.begin() et session.commit() fait l'objet d'un suivi
// dans les statistiques de durée de "updatePrice".
session.setTransactionType("updatePrice");
session.begin();
map.update(stockId, new Integer(100));
session.commit();
La première ligne indique que le type de
transaction suivant est updatePrice. Il existe une statistiques updatePrice
sous l'instance ObjectGrid qui correspond à la session de l'exemple.
A l'aide d'interfaces JMX (Java™ Management Extensions), vous pouvez obtenir le
temps de réponse des transactions updatePrice. Vous pouvez également extraire
les statistiques agrégées de tous les types de transaction sur l'instance
ObjectGrid spécifiée.
mapModule
La structure mapModule contient trois statistiques
sur les mappes
eXtreme Scale :
- Nombre d'occurrences de mappe - BoundedRangeStatistic : Recherche le nombre d'occurrences d'une mappe. Le
Nombre d'occurrences est une valeur flottante comprise entre 0 et 100
compris, qui représente le pourcentage d'occurrences de mappe en relation avec
les opérations d'extraction de mappe.
- Nombre d'entrées - CountStatistic : Recherche
le nombre d'entrées dans la mappe.
- Temps de réponse de la mise à jour par lots du chargeur - TimeStatistic : Recherche le temps de réponse utilisé pour l'opération de mise à jour par lots
du chargeur.
L'élément racine de la structure mapModule, "root", sert
de point d'entrée aux statistiques des mappes ObjectGrid. Cet élément racine
contient des ObjectGrids comme éléments enfant et ces derniers possèdent des
mappes comme éléments enfant. Trois statistiques sont répertoriées pour chaque
instance de mappe. La structure mapModule est illustrée dans le diagramme
suivant :
Figure 3. structure mapModule
Le diagramme suivant
illustre un exemple de structure mapModule :
Figure 4. Exemple de structure de module mapModule
hashIndexModule
La structure hashIndexModule contient
les statistiques suivantes sur les index de niveau mappe :
- Nombre de recherches - CountStatistic : Nombre
d'appels de l'opération de recherche d'index.
- Nombre de collisions - CountStatistic : Nombre de collisions de l'opération de recherche.
- Nombre d'échecs - CountStatistic : Nombre d'échecs pour l'opération de recherche.
- Nombre de résultats - CountStatistic : Nombre de clés
renvoyées par l'opération de recherche.
- Nombre de mises à jour par lots - CountStatistic : Nombre de mises à jour par lots sur cet index. Si la mappe correspondante es
modifié qu'une quelconque manière, la méthode doBatchUpdate() de l'index est
appelée. Cette statistiques indique la fréquence à laquelle votre index
est modifié ou mis à jour.
- Durée de recherche - TimeStatistic : Temps que prend l'opération de recherche pour s'exécuter
L'élément
racine de la structure hashIndexModule, "root", sert de point d'entrée aux
statistiques de HashIndex. Cet élément racine contient des ObjectGrids comme
éléments enfant, les ObjectGrids contiennent des mappes comme éléments enfant
et enfin, ces mappes contiennent des instances HashIndex comme éléments
enfant et les noeuds terminaux de l'arborescence. Trois statistiques sont
répertoriées pour chaque instance HashIndex.
La structure hashIndexModule est illustrée dans le diagramme suivant :
Figure 5. structure de module hashIndexModule
Le diagramme suivant
illustre un exemple de structure hashIndexModule :
Figure 6. Exemple de structure de module hashIndexModule
agentManagerModule
La structure agentManagerModule
contient les statistiques sur les agents de niveau mappe :
- Temps de réduction : TimeStatistic -
Durée nécessaire pour que l'agent termine l'opération de réduction.
- Durée totale : TimeStatistic -
Durée totale nécessaire à l'agent pour effectuer toutes les opérations.
- Temps de sérialisation de l'agent : TimeStatistic -
Durée nécessaire pour sérialiser l'agent.
- Temps d'inflation de l'agent : TimeStatistic -
Durée nécessaire pour l'inflation de l'agent sur le serveur.
- Temps de sérialisation des résultats : TimeStatistic -
Durée nécessaire pour sérialiser les résultats de l'agent.
- Temps d'inflation des résultats : TimeStatistic -
Durée nécessaire pour l'inflation des résultats de l'agent.
- Nombre d'échecs : CountStatistic - Nombre de fois que l'agent a échoué.
- Nombre d'appels : CountStatistic - Nombre d'appels d'AgentManager.
- Nombre de partitions : CountStatistic - Nombre de partitions vers lesquelles l'agent est envoyé.
L'élément
racine de la structure agentManagerModule, "root", sert de point d'entrée aux
statistiques d'AgentManager. Cet élément racine contient des ObjectGrids comme
éléments enfant, les ObjectGrids contiennent des mappes comme éléments enfant
et enfin, ces mappes contiennent des instances AgentManager comme éléments
enfant et les noeuds terminaux de l'arborescence. Chaque instance AgentManager a des statistiques.
Figure 7. Structure agentManagerModule
Figure 8. Exemple de structure agentManagerModule
queryModule
La structure queryModule contient les statistiques sur les requêtes
eXtreme Scale :
- Temps de création du plan : TimeStatistic -
Durée nécessaire pour créer le plan de requête.
- Temps d'exécution : TimeStatistic -
Durée nécessaire pour exécuter la requête.
- Nombre d'exécutions :
CountStatistic - Nombre de fois que la requête a été
exécutée.
- Nombre de résultats :
CountStatistic - Nombre de résultats pour chaque ensemble
de résultats de chaque exécution de requête.
- Nombre d'échecs : CountStatistic - Nombre de fois que
la requête a échoué.
L'élément racine de la structure queryModule,
"root", sert de point d'entrée aux statistiques des requêtes. Cet élément racine contient des ObjectGrids comme
éléments enfant et ces derniers possèdent des objets de requête comme éléments
enfant et les noeuds terminaux de l'arborescence. Trois statistiques sont
répertoriées pour chaque instance de requête.
Figure 9. structure queryModule
Figure 10. Exemple de structure queryModule QueryStats.jpg