3

地図の統計を表示しようとしています。常にヒット数が0として表示されます。次のコードを使用しています。

IMap<String, byte[]> map = Hazelcast.getMap("SOMEMAP");
LocalMapStatsImpl local = (LocalMapStatsImpl) map.getLocalMapStats();
System.out.println(map.getLocalMapStats());

出力は

LocalMapStatsImpl{ownedEntryCount=0, backupEntryCount=1, markedAsRemovedEntryCount=0, ownedEntryMemoryCost=0, backupEntryMemoryCost=13841, markedAsRemovedMemoryCost=0, creationTime=1323806943770, lastAccessTime=0, lastUpdateTime=0, lastEvictionTime=0, hits=0, lockedEntryCount=0, lockWaitCount=0, dirtyEntryCount=0, LocalMapOperationStats{total= 0, puts:OperationStat{count=0, averageLatency=0}, gets:OperationStat{count=0, verageLatency=0}, emoves:OperationStat{count=0, averageLatency=0}, others: 0, received events: 0}}

どんな助けでも大歓迎です。ヒット数、マップのサイズ、エントリー数を知りたい。

4

2 に答える 2

2

必ずいくつかのエントリをマップに入れてください。統計からわかるように、マップにはエントリが1つだけあり、そのエントリは別のノードによって所有されています。現在のノードには、そのエントリのバックアップがあります(ownedEntryCount = 0、backupEntryCount = 1)。

この統計は、現在のノードのローカルマップのみを対象としていることに注意してください。複数のノードがあり、統計を取得するときに現在のノードがデータを所有していない場合、ヒット数または所有エントリ数がない場合は0になります。

Hazelcast 1.9.4.4(現在のところ最新)と単一ノードを使用して、統計を取得できます。

IMap map = Hazelcast.getMap("test");
for (int i = 0; i < 100; i++) {
    map.put(i, i);
    map.get(i);
}
LocalMapStats stats = map.getLocalMapStats();
System.err.println(stats.getHits());
System.err.println(stats.getOwnedEntryCount());

ヒット数とownedEntryCountの両方が100を示しています。

LocalMapStatsImpl{ownedEntryCount=100, backupEntryCount=0, markedAsRemovedEntryCount=0, ownedEntryMemoryCost=42100, backupEntryMemoryCost=0, markedAsRemovedMemoryCost=0, creationTime=1323844949878, lastAccessTime=1323844949908, lastUpdateTime=0, lastEvictionTime=0, hits=100, lockedEntryCount=0, lockWaitCount=0, dirtyEntryCount=0, LocalMapOperationStats{total= 200, puts:OperationStat{count=100, averageLatency=0}, gets:OperationStat{count=100, averageLatency=0}, removes:OperationStat{count=0, averageLatency=0}, others: 0, received events: 0}}

これを試して、同じ結果が得られるかどうかを確認してください。それ以外の場合は、マップが空であるか、使用したバージョンにバグがあります。

于 2011-12-14T06:54:22.957 に答える
1

hazelcast-monitor9.3.4.jarをダウンロードし、ローカルのApacheWebサーバーにインストールします。Webアプリケーションにアクセスします。ログインページが起動します。クラスタ名、パスワード、server:portを入力して、[接続]をクリックするだけです。すべてのマップが統計とともに表示されます。

于 2012-02-12T14:55:17.143 に答える