首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Vertx http server实例编号不能提高吞吐量。

Vertx http server实例编号不能提高吞吐量。
EN

Stack Overflow用户
提问于 2019-08-27 02:50:07
回答 1查看 386关注 0票数 0

我正在使用Vertx3.8.0构建一个http服务器。即使当我将顶点的实例设置为大于1的实例时,也不能使用CPU (仅占CPU的25% )。我可以获得的最佳性能是将实例号设置为1。

代码语言:javascript
复制
public class Runner {
    public static void main(String[] args) {

        VertxOptions vertxOptions = new VertxOptions().setPreferNativeTransport(true);
        vertxOptions.setEventLoopPoolSize(6);
        final HttpServerOptions options = new HttpServerOptions()
                .setTcpFastOpen(true)
                .setTcpNoDelay(true)
                .setTcpQuickAck(true);

        final Vertx vertx = Vertx.vertx(vertxOptions);

        DeploymentOptions deploymentOptions;
        deploymentOptions = new DeploymentOptions().setInstances(3);
        vertx.deployVerticle(() -> new AbstractVerticle() {
                    @Override
                    public void start(Future<Void> startFuture) {


                        vertx.createHttpServer(options)
                                .requestHandler(req -> {
                                    req.response().end("1");
                                })
                                .listen(8080, "0.0.0.0");
                    }
                }, deploymentOptions
        );
        System.out.println("Deployment done with pooling");
    }

}

我使用apache基准测试服务器的吞吐量。

代码语言:javascript
复制
 ab -c 150 -n 100000 http://10.32.31.35:8080/api/values/

吞吐量大约为每秒8k。服务器只使用大约25%的CPU。如果我使用http保持活动,吞吐量约为48k,CPU约为50%。

我使用JMX来监视服务器程序。似乎实例号设置实际上起作用了。有超过一个事件循环处理请求,但它很可能是接收者事件循环的瓶颈。

还有改进的地方吗?我认为多个vertx实例会有所帮助(比如docker),但是难道没有更好的方法来利用计算资源吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-27 18:52:29

这个测试有一些无效的假设:

  1. 您认为您正在部署3台服务器,但它们部署在同一个端口上,因此实际上只有一台服务器在监听。部署更多的服务器也不会增加并发性。
  2. 您的测试没有那么多地使用事件循环。大部分时间都浪费在建立新的连接上。这就是为什么在使用keepalive时看到“改进”的原因。这是纯粹的网络,而不是Vert.x
  3. 确保在单独的机器上运行ab,或者在相同的资源上竞争
  4. 无论如何,不要期望看到某种100%的CPU利用率,因为实际上,您并没有做任何CPU密集型的事情。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57667109

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档