【问题标题】:jmeter hangs up and won't returnjmeter 挂断并且不会返回
【发布时间】:2012-10-06 09:32:30
【问题描述】:
我正在运行 340 个并发用户来使用 jmeter 在服务器上进行负载测试。
但在大多数情况下,jmeter 挂起并且不会返回,即使我尝试关闭连接它也只是挂起。最终我不得不关闭应用程序。
知道如何检查什么持有请求以及如何检查 jmeter 发送的请求并找到瓶颈。
在关闭线程时收到以下消息
Shutting down thread please be patient message
【问题讨论】:
标签:
httprequest
jmeter
load-testing
performance-testing
【解决方案1】:
您收到此错误可能是因为 JVM 无法运行这么多线程。如果你看看你的终端,你会看到你得到的异常:
未捕获的异常 java.lang.OutOfMemoryError:无法创建新的本地线程。有关详细信息,请参阅日志文件。
您可以通过 Remote Testing 解决此问题,并运行多个集群,而不是一个。
【解决方案2】:
我有
一个或多个测试线程不会退出
因为防火墙阻止了一些请求。所以我不得不为所有被阻止的请求跳过防火墙超时......然后它返回了。
【解决方案3】:
我之前在笔记本电脑(Core 2 Duo 1.5Ghz)上运行 JMeter 时也遇到过这个问题,它总是在处理过程中挂起。我试图在另一台比我的笔记本电脑更强大的电脑上运行,它现在可以顺利运行。因此,如果您的 pc 或笔记本电脑具有更好的规格,JMeter 将有效地运行。
注意:建议在非 gui 模式下运行 JMeter。
在 Linux 中运行 JMeter 的示例:
$ ./jmeter -t test.jmx -n -l /Users/home/test.jtl
【解决方案4】:
在过去的几年里,我已经多次遇到这种情况。在我的每种情况下(可能不在您的情况下),问题出在我发送流量的负载平衡 (F5) 上。基本上,一个名为 OneConnect 的属性将连接保持在时间等待状态,并且永远不会终止连接。
运行像 wireshark 这样的打包工具,看看请求发生了什么。
【解决方案6】:
首先检查您的脚本是否适合一个用户。
确保使用断言。
然后按照 jmeter 最佳实践运行您的测试:
然后您应该能够在 csv 输出中看到最长的请求并能够解决您的问题。