我已经使用ignite一年了,仍然是2.7.5版本。
在ignite版本2.8.0和2.9.0发布之后,我尝试升级我的ignite版本。但我发现sql查询速度大大降低,cpu使用率也很高。它比以前多用了十倍。
我有3个数据节点,每个节点有4个cpu核和8g内存。1个逻辑节点,4个cpu核和8g内存。
ignite版本2.9.0、zookeeper版本3.5.8中的性能:
查询2.9.0 1
查询2.9.0 2
点燃2.9.0中的cpu
点燃2.9.0中的gc
ignite版本2.7.5、zookeeper版本3.4.13中的性能:
查询2.7.5 1
查询2.7.5.2
点燃2.7.5中的cpu
点燃2.7.5中的gc
查询代码:
public LeagueService getLeagueInfo4Init(long humanId, Handler<AsyncResult<JsonObject>> handler) {
long startTime = System.currentTimeMillis();
LeagueUtils.getWorkerPool(vertx).executeBlocking(f -> {
// query league member info
List<LeagueMemberEntity> result = leagueMemberEntityDao.selectByHumanId(humanId);
if (result.isEmpty()) {
f.complete();
return;
}
LeagueMemberEntity leagueMemberEntity = result.get(0);
// query league info
LeagueInfoEntity leagueInfoEntity = leagueInfoEntityDao.selectByLeagueId(leagueMemberEntity.getLeagueId());
if (leagueInfoEntity == null) {// no league
leagueMemberEntityDao.remove(leagueMemberEntity);// no league, delete member info
f.complete();
return;
}
LeagueInitInfo leagueInitInfo = getLeagueInitInfoBlock(leagueInfoEntity);
f.complete(leagueInitInfo.toJson());
}, false, ar->{
if(ar.failed()) {
handler.handle(Future.failedFuture(ar.cause()));
Loggers.leagueLogger.error("League operate log ====> query league info for init failed; humanId:{}, useTime:{}ms",
humanId, (System.currentTimeMillis() - startTime), ar.cause());
return;
}
Loggers.leagueLogger.info("League operate log ====> query league info for init; humanId:{}, useTime:{}ms",
humanId, (System.currentTimeMillis() - startTime));
if(ar.result() == null) {
handler.handle(Future.succeededFuture());
} else {
handler.handle(Future.succeededFuture((JsonObject)ar.result()));
}
});
return this;
}
因为我不改变任何代码或配置,只是更新点火版本和zookeeper版本,我想知道为什么会发生这种情况,以及如何避免这种情况?
如果有必要的话,我很高兴与大家分享这个问题的更多细节。
暂无答案!
目前还没有任何答案,快来回答吧!