org.apache.jorphan.util.JMeterError:无法返回样本

时间:2018-01-15 08:13:16

标签: jmeter distributed master-slave

我在分布式模式下运行Jmeter测试。我为奴隶设置了SSH隧道,因为它们不在同一个区域。我已经执行了2700个运行良好的用户。当我们尝试运行5200个用户时,用户将进入完成状态,尽管稳定状态为1小时。我正在使用终极线程组。 4500个用户正常运行,600个用户从5200个用户进入完成状态。

在Jmeter服务器日志中看到以下错误:

错误o.a.j.t.JMeterThread:测试失败了! org.apache.jorphan.util.JMeterError:无法返回样本                at org.apache.jmeter.samplers.StandardSampleSender.sampleOccurred(StandardSampleSender.java:70)〜[ApacheJMeter_core.jar:3.3 r1808647] 引起:java.rmi.ConnectException:连接拒绝主机:127.0.0.1;嵌套异常是:                 java.net.ConnectException:连接被拒绝:连接                 at sun.rmi.transport.tcp.TCPEndpoint.newSocket(Unknown Source)〜[?:1.8.0_151]

有什么想法吗?造成这种情况的原因是什么?

2 个答案:

答案 0 :(得分:0)

从日志中可以看出隧道已损坏:

  

引起:java.rmi.ConnectException:连接拒绝主机:127.0.0.1;

见:

答案 1 :(得分:0)

错误是关于JMeter slave无法建立连接以将结果传递给主服务器,因此问题出在SSH服务器端,您可以查看其日志以查看出现了什么问题。

选项包括:

  1. SSH代表" 安全 Shell"所以所有的流量都被加密了。它也会被压缩以减少占地面积。当涉及到高负载时,SSH服务器和/或客户端可能会消耗大量资源,即被OOM Killer或其他任何东西杀死。您可以尝试configuring your SSH server禁用压缩并使用较弱的加密算法,例如arcfour
  2. 可能更容易移动"掌握"到"其他地区"而不是通过SSH传递大量测试结果
  3. 另一种选择可能是使用VPN而没有加密,这样所有JMeter节点都将位于同一子网中。
  4. 最后,您可以禁用从主服务器向主服务器自动发送测试结果:

    • 在JMeter Slaves上设置mode=DiskStore属性
    • 当您的测试完成后,从奴隶收集结果并将其复制到主人
    • 使用Merge Results Tool将多个结果合并为单个.jtl文件。可以使用JMeter Plugins Manager
    • 安装合并结果工具