Netty 4.0.19.Final Bootstrap.connect CPU使用问题

时间:2014-07-12 23:00:12

标签: netty

我遇到问题Bootstrap.connect占用了我的应用程序的大量CPU能力。我目前正在使用64线程的线程池(主要用于阻止DNS解析)每隔10秒向Netty发送300次连接尝试。该程序的目的是查询我的网站Minestatus上列出的Minecraft服务器。

每次调度这些连接时,CPU使用率都会达到100%。我附上了JMX连接采样CPU使用情况的屏幕截图。知道发生了什么事吗?CPU usage sampling

以下是我的调度代码:

private void dispatch(EventLoopGroup workerGroup, final MinecraftServer server) {
    Bootstrap bootstrap = new Bootstrap();
    bootstrap.group(workerGroup).channel(NioSocketChannel.class);
    bootstrap.handler(new UpdaterPipelineInitializer(timeout));
    bootstrap.attr(MinecraftServer.SERVER_KEY, server);
    bootstrap.option(ChannelOption.CONNECT_TIMEOUT_MILLIS, timeout);

    bootstrap.connect(server.getAddress(), server.getPort()).addListener(new ChannelFutureListener() {
        public void operationComplete(ChannelFuture future) throws Exception {
            server.incrementAttemptedConnections();
            if (future.isSuccess()) {
                server.incrementSuccessfulConnections();
                server.setOnline(true);
            } else {
                future.cause().printStackTrace();
                server.setOnline(false);
                MinestatusUpdater.getDatabaseHandler().saveServer(server);
            }
        }
    });
}

0 个答案:

没有答案