равный TPS возвращает для 1 или более серверных вершин при выполнении нагрузочного теста (TPS одинаков для одного узла или нескольких узлов) - PullRequest
0 голосов
/ 10 мая 2019

У меня есть 4 вершинных ложных аписа за Nginx.При выполнении нагрузочного теста jmeter с 250 пользователями результат будет одинаковым для 1 вершинного узла или более.Например: - с 1 узлом Vertx (задержка 0 с) - 995 т / с и со всеми 4 узлами результат одинаков.Как мне улучшить tps, увеличив бэкенды?ps когда я ставлю таймер для создания задержки в бэк-энде, tps значительно падает (950 -> 180).Это из-за ошибки в моем коде?

Сервер - Linux 64, экземпляр Jmeter 3.0 с 250 пользователями / 125 разгона

//---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 голосов
/ 10 мая 2019

Каково использование ресурсов (процессор, память, сеть, соединения, потоки и т. Д.) Вашего сервера JMeter во время теста 995 tps?Каковы показатели использования ресурсов для одного узла Vertx во время теста 995 tps?

Убедитесь, что JMeter не является узким местом.Убедитесь, что один сервер вершин обрабатывает трафик без узких мест.Использование ресурсов одного сервера vertx при 995 TPS даст вам представление о том, сколько tps может обработать один сервер.Только тогда переходите к нескольким вершинам.

250 потоков довольно мало для теста 995 TPS.Я предпочитаю устанавливать целевой TPS с чем-то вроде таймера формирования пропускной способности.Я использую большее количество потоков JMeter, чтобы убедиться, что мой шаг на поток больше, чем время отклика.Таким образом, tps определяется не просто временем отклика.Без стимуляции у вас есть неконтролируемый пожарный шланг, и может быть трудно управлять любыми повторяемыми числами и находить узкие места в тестируемой системе.

...