Performance Monitoring Infrastructure (PMI) モジュールを使用してアプリケーションのパフォーマンスをモニターすることができます。
objectGridModule
objectGridModule は時間統計 (トランザクション応答時間) を含みます。
トランザクションは、
Session.begin メソッド呼び出しと
Session.commit メソッド呼び出しの間の所要時間として
定義されます。
この所要時間は、トランザクション応答時間として追跡されます。objectGridModule の
ルート・エレメント (root) は、
WebSphere® eXtreme
Scale 統計への入り口点として機能します。
このルート・エレメントは ObjectGrid を子エレメントとして持ち、さらにこの子エレメントはトランザクション・タイプを子エレメントとして持ちます。
応答時間統計は
それぞれのトランザクション・タイプと関連しています。
図 1. ObjectGridModule モジュール
の構造
次の図は ObjectGridModule 構造の例です。この例では、2 つの ObjectGrid インスタンス (ObjectGrid A と ObjectGrid B) がシステムに存在します。ObjectGrid A インスタンスには 2 つのトランザクション・タイプ (A とデフォルト) があります。
ObjectGrid B インスタンスにはデフォルトのトランザクション・タイプのみがあります。
図 2. ObjectGridModule モジュール構造の例
アプリケーション開発者は、アプリケーションがどのタイプのトランザクションを使用するのかを
知っているため、トランザクション・タイプはアプリケーション開発者によって定義されます。トランザクション・タイプの設定は、次の
Session.setTransactionType(String) メソッドを使用して行われます。
/**
* Sets the transaction type for future transactions.
*
* After this method is called, all of the future transactions have the
* same type until another transaction type is set. If no transaction
* type is set, the default TRANSACTION_TYPE_DEFAULT transaction type
* is used.
*
* Transaction types are used mainly for statistical data tracking purpose.
* Users can predefine types of transactions that run in an
* application. The idea is to categorize transactions with the same characteristics
* to one category (type), so one transaction response time statistic can be
* used to track each transaction type.
*
* This tracking is useful when your application has different types of
* transactions.
* Among them, some types of transactions, such as update transactions, process
* longer than other transactions, such as read−only transactions. By using the
* transaction type, different transactions are tracked by different statistics,
* so the statistics can be more useful.
*
* @param tranType the transaction type for future transactions.
*/
void setTransactionType(String tranType);
次の例は、
updatePrice へのトランザクション・タイプを設定します。
// Set the transaction type to updatePrice
// The time between session.begin() and session.commit() will be
// tracked in the time statistic for "updatePrice".
session.setTransactionType("updatePrice");
session.begin();
map.update(stockId, new Integer(100));
session.commit();
最初の行は、後続のトランザクション・タイプが updatePrice であることを示します。updatePrice 統計は、
例にあるセッションに対応する ObjectGrid インスタンスに置かれています。Java Management Extensions (JMX) インターフェース
を使用して、updatePrice トランザクション用のトランザクション応答時間を取得できます。
指定した ObjectGrid インスタンスで、トランザクションのすべてのタイプの
集約統計も取得できます。
mapModule
mapModule は、
eXtreme Scale マップに関連した 3 つの統計を含んでいます。
- マップ・ヒット率 - BoundedRangeStatistic: マップのヒット率を追跡します。
ヒット率は 0 以上 100 以下の浮動値で、
マップ取得操作に関係するマップ・ヒットの比率です。
- エントリー数 -CountStatistic: マップのエントリー数を追跡します。
- ローダー・バッチ更新応答時間 -TimeStatistic: ローダー・バッチ更新操作に使用される応答時間を追跡します。
mapModule のルート・エレメント (root) は、ObjectGrid マップ統計への入り口点として機能します。
このルート・エレメントは ObjectGrid を子エレメントとして持ち、さらにこの子エレメントはマップを子エレメントとして持ちます。
すべてのマップ・インスタンスは、3 つのリスト統計を持っています。次の図は
mapModule 構造です。
次の図は mapModule 構造の例です。
図 4. mapModule モジュール構造の例
hashIndexModule
hashIndexModule は、マップ・レベルの索引に関連する次の統計を含みます。
- 検索カウント -CountStatistic: 索引検索操作の呼び出し回数。
- 衝突カウント -CountStatistic: 検索操作の衝突回数。
- 障害カウント -CountStatistic: 検索操作の障害件数。
- 結果カウント -CountStatistic: 検索操作から戻されたキーの数。
- バッチ更新カウント -CountStatistic: この索引に対するバッチ更新の回数。
対応するマップが何らかの方法で変更されると、索引で、その doBatchUpdate() メソッドが呼び出されます。
この統計からは、索引の変更または更新頻度が分かります。
- 検索操作所要時間 -TimeStatistic: 検索操作が完了するまでに要する時間。
hashIndexModule のルート・エレメント (root) は、HashIndex 統計への入り口点として機能します。
このルート・エレメントは ObjectGrid を子エレメントとして持ちます。ObjectGrid はマップを子エレメントとして持ち、最終的にこの子エレメントは HashIndexe を子エレメントおよびツリーのリーフ・ノードとして持ちます。
すべての HashIndex インスタンスは 3 つのリスト統計を持っています。
次の図は hashIndexModule の構造です。
図 5. hashIndexModule モジュール構造
次の図は hashIndexModule 構造の例です。
図 6. hashIndexModule モジュール構造の例
agentManagerModule
agentManagerModule は、マップ・レベルのエージェントに関連した統計を含みます。
- 削減時間: TimeStatistic - エージェントが削減操作を完了するまでの時間。
- 合計所要時間: TimeStatistic - エージェントがすべての操作を完了するまでの合計時間。
- エージェント・シリアライゼーション時間: TimeStatistic - エージェントをシリアライズするための時間。
- エージェント・インフレーション時間: TimeStatistic - サーバー上でエージェントをインフレーションするのに要する時間。
- 結果シリアライゼーション時間: TimeStatistic - エージェントからの結果をシリアライズするための時間。
- 結果インフレーション時間: TimeStatistic - エージェントからの結果をインフレーションするための時間。
- 障害カウント: CountStatistic - エージェントが障害を起こした回数。
- 呼び出しカウント: CountStatistic - AgentManager が呼び出された回数。
- 区画カウント: CountStatistic - エージェントが送られる相手区画の数。
agentManagerModule のルート・エレメント (root) は、AgentManager 統計への入り口点として機能します。
このルート・エレメントは ObjectGrid を子エレメントとして持ちます。ObjectGrid はマップを子エレメントとして持ち、最終的にこの子エレメントは AgentManager インスタンスを子エレメントおよびツリーのリーフ・ノードとして持ちます。
すべての AgentManager インスタンスは統計を持っています。
図 7. agentManagerModule
構造
図 8. agentManagerModule 構造の例
queryModule
queryModule は、
eXtreme Scale 照会に関連した統計を含みます。
- 計画作成時間: TimeStatistic - 照会計画を作成するための時間。
- 実行時間: TimeStatistic - 照会を実行するための時間。
- 実行カウント: CountStatistic - 照会が実行された回数。
- 結果カウント: CountStatistic - 実行された各照会の結果セットごとのカウント。
- 障害カウント: CountStatistic - 照会が失敗した回数。
queryModule のルート・エレメント (root) は、Query 統計への入り口点として機能します。
このルート・エレメントは ObjectGrid を子エレメントとして持ち、さらにこの子エレメントは照会オブジェクトを子エレメントおよびツリーのリーフ・ノードとして持ちます。
すべての Query インスタンスは 3 つのリスト統計を持っています。
図 10. QueryStats.jpg queryModule 構造の例