java—将ignite版本更新到2.8.0或2.9.0后,sql查询速度显著降低,cpu使用率高

41ik7eoe  于 2021-07-03  发布在  Java
关注(0)|答案(0)|浏览(237)

我已经使用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版本,我想知道为什么会发生这种情况,以及如何避免这种情况?
如果有必要的话,我很高兴与大家分享这个问题的更多细节。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题