2016-08-11 2186 views
1

我有Jmter设置分布式服务器 - 单个客户端和Jmeter服务器数量。 我设置了mode=StrippedDiskStore以减少对负载生成的影响。如何强制Jmeter服务器中的线程立即停止

我使用Stepping Thread Group来控制线程数和时间。 整个解决方案在负载相对较小时工作正常。

但是,当我增加它 - 在我的情况下超过1000每台机器我注意到,当测试达到“停止”时间,在步进线程组中定义,Jmeter开始停止线程,但它不能立即做到这一点,因为我配置它 - 例如在1秒内。

我可以看到Jmeter服务器关闭了大部分线程,但仍然“等待”最后一个线程。当然,我们的测试应用程序超载了,请求和响应都非常迟缓。

但是我想只是“削减”剩下的任何事情并完成测试。 否则,我需要等待很长一段时间 - 两倍或更多的时间是最初为该场景定义的。如果我通过Jmeter提供的脚本杀死服务器或发送关机消息,则无法使用StrippedDiskStore模式下载Jmter服务器的结果。

是否有任何配置参数或其他的东西可以帮助我吗?

我也监视Jmeter服务器和CPU和内存远低于100%的机器,所以我认为这不是问题在这种情况下。

+0

我没有得到一件事,立即停止测试的条件是什么? –

+0

步进线程组控制整个场景的线程数和时间。所以我可以设定整个场景应该是5分钟。之后,我期望Jmeter将关闭所有线程并完成测试。但是我所经历的是,有些线程在那段时间之后没有被关闭,我认为他们在等待响应或类似的东西。 – Michal

回答

2

您的问题可能是由于缺少Http请求超时,您可以使用HTTP Request Defaults来设置。

现在关于立即停止,你可以(只脚本:-)期间)使用停止测试在JMeter的GUI或:

  • 斌/ stoptest.sh

  • 斌/ stoptest.cmd

这将中断采样器(如果可中断,HTTP请求),但会导致这些采样被标记为错误(这是常规)

作为一个方面说明,我不确定StrippedDiskStore是最佳选择。为什么不使用StrippedAsynch?

+1

看来我的主要问题实际上是StrippedDiskStore模式。在强制测试停止的情况下,我丢失了数据。脚本bin/stoptest.sh完成强制测试停止的工作。我切换到StrippedAsynch模式,我可以使用停止测试的结果。谢谢 – Michal

+1

这将是很好的报告一个错误。谢谢 –

+0

我试图重现我的问题只有单个服务器和停止测试,即使StrippedDiskStore给我结果发送回客户端。我需要仔细看看它。但肯定会报告任何会发现的问题。再次感谢。 – Michal