我已经在jmeter官方站点上进行了一些研究,找不到关于TPS的任何规范(显示Throughput)。你们可以提供有关如何计算Web服务器TPS的确切规格的帮助吗?我已经使用jmeter(4.0)进行了一些性能测试。目前,我对如何计算TPS有2个想法:
1. The total number of threads(users)/Average response time;
所有线程的开始持续时间必须为1
秒。如果数据如下,并且平均响应时间为0.3s,则TPS为:
1000/0.3 = 3333 transection per second
2. The active threads at a certain time/Average response time of all these active threads
说我的数据如下:
该图显示了稳定压力命中服务器的持续时间,总共3个客户端在持续时间的任何时间都有1050个线程,因此TPS为(如果平均响应时间仍为0.4s):350*3/0.4 = 2625 transection per second
我有上述问题,因为:
如果我在1秒钟内启动了1000个线程(用户),则无法确保这1000个线程同时到达服务器,如果其中某些线程(例如10%)已完成而其他线程刚刚启动,该怎么办?然后服务器在特定时间没有压力。
请帮助我,谢谢。
答案 0 :(得分:1)
尝试在Thread Group中增加循环数,否则您可能(并且将)遇到某些线程已经完成其工作并且已经关闭而其他线程尚未启动的情况。优良作法是将厕所的数量设置为Forever
或-1
,并通过“调度程序配置”或Runtime Controller限制测试持续时间。请参阅JMeter Test Results: Why the Actual Users Number is Lower than Expected文章,以获取更全面的信息。
每秒的实际事务数取决于您的应用程序响应时间。如果您希望测试产生所需的TPS速率,最好考虑使用Concurrency Thread Group和Throughout Shaping Timer的组合。
您可以使用Transactions Per Second侦听器或HTML Reporting Dashboard的等效图表来检查您的测试每秒产生多少交易
According to JMeter Best Practices you should be using the latest version of JMeter,因此请考虑升级。