【发布时间】:2021-12-13 19:54:11
【问题描述】:
我使用了40个线程的普通线程组,吞吐量180000,预期TPS是3000..,但是,结果只有2750 tps。,如何提高TPS? 我已经尝试了并发线程组以及整形计时器组合.. 你能指导我吗..,在此先感谢。
【问题讨论】:
标签: performance concurrency jmeter throughput tps
我使用了40个线程的普通线程组,吞吐量180000,预期TPS是3000..,但是,结果只有2750 tps。,如何提高TPS? 我已经尝试了并发线程组以及整形计时器组合.. 你能指导我吗..,在此先感谢。
【问题讨论】:
标签: performance concurrency jmeter throughput tps
通过在单位时间内(秒、分钟、小时等)向目标服务器发送所需数量的请求来控制TPS或吞吐量
通过更改线程数来控制吞吐量并不容易,也不是好习惯。当服务器变慢时,吞吐量变低,反之亦然。
您需要在服务器响应较快时引入延迟,在服务器响应较慢时引入更多线程。通过设置线程数来达到想要的吞吐量并不容易。
请注意
如果服务器无法处理它,或者如果其他计时器或耗时的测试元素阻止它,吞吐量将会降低。
JMeter 有多种方法可以通过向请求引入延迟来实现所需的吞吐量。
使用计时器
在上述情况下,您需要确保有足够数量的线程可用以生成所需的吞吐量。如果创建的线程数多于所需线程数,则此解决方案效率不高。
最好的方法是测试应该按需创建额外的线程,并根据需要在请求之间引入延迟。
在 JMeter 中,您可以使用 Concurrency Thread Group 和 Throughput Shaping Timer 来实现此目的。
This video 演示控制器的使用。
【讨论】:
180000 of throughput, 节是什么意思,如果你把它放到恒定吞吐量计时器上,请注意:在“分钟”级别上足够精确
它只能“暂停”JMeter 以将其吞吐量“限制”到给定值
通常,只有 1 个用户每秒发出 75 个请求,您才能在 40 个用户的情况下达到 3000 TPS,这意味着您的应用程序响应时间应低于 75 毫秒。
如果响应时间会更长 - 您将无法在 40 个用户的情况下达到每秒 3000 个请求。
更多信息:What is the Relationship Between Users and Hits Per Second?
【讨论】: