我使用了40个线程的普通线程组,180000的吞吐量,预计TPS是3000..,但是,结果只有2750 tps。,如何提高TPS?我已经尝试了并发线程组以及整形计时器组合..你能指导我..提前谢谢。
2 回答
TPS 或吞吐量是通过在单位时间内(秒、分钟、小时等)向目标服务器发送所需数量的请求来控制的
通过更改线程数来控制吞吐量并不是一件容易或好的做法。当服务器变慢时,吞吐量变低,反之亦然。
您需要在服务器响应较快时引入延迟,并在服务器响应较慢时引入更多线程。通过设置线程数来达到想要的吞吐量并不容易。
请注意
如果服务器无法处理它,或者如果其他计时器或耗时的测试元素阻止它,吞吐量将会降低。
JMeter 有多种方法可以通过向请求引入延迟来实现所需的吞吐量。
使用定时器
在上述情况下,您需要确保有足够数量的线程可用以生成所需的吞吐量。如果创建的线程数多于所需线程数,则此解决方案效率不高。
最好的方法是测试应该按需创建额外的线程并根据需要在请求之间引入延迟。
在 JMeter 中,您可以使用Concurrency Thread Group和吞吐量整形计时器来实现这一点。
该视频演示了控制器的使用。
- 首先,您的应用程序必须能够处理这样的负载。我不知道你的
180000 of throughput,
节是什么意思,如果你把它放到恒定吞吐量计时器上,请注意:
在“分钟”级别上足够精确
它只能“暂停”JMeter 以将其吞吐量“限制”到给定值
一般来说,只有 1 个用户每秒发出 75 个请求,您才能在 40 个用户的情况下达到 3000 TPS,这意味着您的应用程序响应时间应低于 75 毫秒。
如果响应时间会更长 - 您将无法在 40 个用户的情况下达到每秒 3000 个请求。
- 此外,JMeter 应该能够足够快地发送请求,因此请确保遵循JMeter 最佳实践,如果这还不够,请考虑使用分布式测试
更多信息:用户和每秒点击数之间的关系是什么?