我正在使用运行 HTTP 服务器的基本 vert.x 示例 verticle;
package io.vertx.starter;
import io.vertx.core.AbstractVerticle;
public class MainVerticle extends AbstractVerticle {
@Override
public void start() {
vertx.createHttpServer()
.requestHandler(req -> req.response().end("Hello Vert.x!"))
.listen(8080);
}
}
这会启动并响应,所以我想我会通过它进行快速负载测试ab -n 100000 -c 50 http://localhost:8080
每次运行都相对一致,大约有 16,400 个完成的请求超时,给予或接受 10 个。我尝试过使用vertx 选项setWorkerPoolSize
,setEventLoopPoolSize
但似乎没有任何效果。
我还尝试通过缩放 Verticle--instances 10
并确认它确实部署了 10 个 Verticle。奇怪的是,同样的 16,400 是它死亡的地方。
日志显示没有错误或警告,它似乎只是在负载下死了。如果几秒钟后我用浏览器点击它,它会再次愉快地响应。有没有人遇到过这个?我很好奇为什么会发生这种情况,以及如何解决它。