什么是最好的方式来获得最大tps服务器可以支持

问题描述:

我有20 Rest API使用Jersey和Apache Client构建。我想知道我的服务器可以承受的最大TPS,使用JMeter工具。什么是最好的方式实现这样的性能场景目标。什么是最好的方式来获得最大tps服务器可以支持

+0

如果你想衡量服务器性能则[阿帕奇基准(AB)(http://httpd.apache.org/docs/2.4/programs /ab.html)或[HTTPerf](https://github.com/httperf/httperf)将是最佳解决方案。 – Adnan

+0

@Adnan'ab'实际上不是一个非常好的工具。它有一些严重的线程问题,应该主要被视为玩具。如果你想申请实际的负载,使用一个真正的负载测试工具,如JMeter(如果你想坚持使用Apache产品)。 –

+0

非常感谢@ChristopherSchultz – SuryaVeepuri

  1. 首先建立一个测试计划。我相信它应该至少有20个HTTP Request采样器来覆盖您的所有端点,并且HTTP Header Manager可以发送正确的Content-Type标头。详情请参阅Testing SOAP/REST Web Services Using JMeter文章。
  2. 一旦你有了测试计划 - 与1-2个虚拟用户一起运行它来检查它是否做了它应该做的事情。使用View Results Tree监听器检查请求和响应详细信息。如果需要修改请求。
  3. 配置您的Thread Group(S),因此负载增加逐渐,即提供合理加速时间
  4. 一旦你认为自己的测试行为禁用查看结果树侦听器和run your test in non-GUI mode
  5. 分析结果使用即HTML Reporting Dashboard。你感兴趣的值居住在每秒点击
+0

非常感谢Dmitri.Should我需要以增量方式增加负载以记录最大TPS吗?有没有必要在这种情况下包含thinktime – SuryaVeepuri

+0

我相信你应该总是增加负载,否则你将无法获得虚拟用户到达与待测应用程序行为之间的相关性。关于思考时间,通常不需要进行直接的API测试,但是如果您正在模拟移动应用程序 - 则应该考虑这一点。有关详细信息,请参阅[使用JMeter计时器的综合指南](https://www.blazemeter.com/blog/comprehensive-guide-using-jmeter-timers)。 –