进行负载测试时,相等的TPS为1个或多个顶点的后端返回(对于单个节点或多个节点,TPS相同)

时间:2019-05-10 11:21:16

标签: java nginx jmeter vert.x

我在Nginx后面有4个Vertx模拟API。在执行250个用户的jmeter负载测试时,对于1个vertx节点或更多顶点,结果都是相同的。 例如:-具有1个Vertx节点(0秒延迟)-995 tps,并且对于所有4个节点,结果都是相同的。如何通过增加后端来提高tps? p.s当我放置一个计时器来创建后端延迟时,tps显着下降(950-> 180)。这是由于我的代码中的错误吗?

服务器-Linux 64(具有250个用户/ 125个升级)的Jmeter实例3.0

//---Vertx mock service ---------------------------
public class App extends AbstractVerticle {

    private static Logger LOGGER = Logger.getLogger("InfoLogging");
    public static void main(String[] args) {
        Vertx vertx = Vertx.vertx();
 PropertyConfigurator.configure(System.getProperty("user.dir")+"/log4j.properties");

        HttpServer httpServer = vertx.createHttpServer();
        Router router = Router.router(vertx);

            Route ELKPaymentResponse = router
                    .post("/:param/amount")
                    .produces("application/json")
                    .handler(routingContext -> {
                          routingContext.request().bodyHandler(bodyHandler -> {
                        HttpServerResponse response = routingContext.response();
                     //   response.setChunked(true);
                        String JsonResponse ="{  
              //Mock service here
}";

                        vertx.setTimer(TimeUnit.SECONDS.toMillis(1), l -> {
                         JsonObject json = new JsonObject(JsonResponse);
                             response.putHeader("Content-Type", "application/json; charset=UTF8")
                             .setStatusCode(200)
                             .end(Json.encodePrettily(json));
                         });
                          }); 
                   });

1 个答案:

答案 0 :(得分:0)

在995 tps测试期间,JMeter服务器的资源利用率(cpu,mem,网络,连接,线程等)是多少?在995 tps测试期间,单个Vertx节点的资源利用率数字是多少?

确保JMeter不会成为瓶颈。验证单个顶点服务器正在处理流量而没有瓶颈。 995 TPS的单个vertx服务器资源利用率将为您提供线索,以了解单个服务器可以处理多少tps。只有这样,才能移动到多个顶点。

250个线程对于995 TPS测试运行来说非常低。我更喜欢使用吞吐量调整计时器等设置目标TPS。我使用了大量的JMeter线程,以确保每个线程的步调大于响应时间。这样,tps不能简单地通过响应时间来确定。如果不调整速度,您将失去控制权,并且很难管理任何可重复的数字并在被测系统上发现瓶颈。