【问题标题】:Jmeter java.net.SocketException: Connection reset by peer: socket write errorJmeter java.net.SocketException:对等方重置连接:套接字写入错误
【发布时间】:2020-06-19 18:01:23
【问题描述】:

Jmeter 5.1.1 在 AWS EC2 windows box 和 Server Agent 2.2.3 上运行。 并添加了 jp@gc - PerfMon Metrics Collector 来收集 EC2 机器 CPU 利用率、内存和网络 I/O 指标,在 PerfMon Metrics Collector 插件中,我提供了 EC2 实例公共 IP 和服务器代理端口 4444。运行脚本后我得到 java.net.connectException 的单线程连接超时:连接。 [jp@gc - PerfMon 指标收集器 - java.net.connectexception][1] [1]:https://i.stack.imgur.com/VIiIi.png

我还尝试提供私有 IP 和端口 4444,运行脚本后服务器代理立即关闭,我收到错误 java.net.SocketException: Connection reset by peer: socket write error。

在 EC2 实例上,我已编辑入站规则并像这样打开端口
所有 TCP TCP 0 - 65535 0.0.0.0/0

  • Jmeter 控制台日志

    `*java.net.SocketException: Connection reset by peer: socket write error
        at java.net.SocketOutputStream.socketWrite0(Native Method) ~[?:1.8.0_211]
        at java.net.SocketOutputStream.socketWrite(Unknown Source) ~[?:1.8.0_211]
        at java.net.SocketOutputStream.write(Unknown Source) ~[?:1.8.0_211]
        at kg.apc.perfmon.client.StreamTransport.writeln(StreamTransport.java:50) ~[perfmon-2.2.2.jar:?]
        at kg.apc.perfmon.client.AbstractTransport.disconnect(AbstractTransport.java:63) [perfmon-2.2.2.jar:?]
        at kg.apc.jmeter.perfmon.NewAgentConnector.disconnect(NewAgentConnector.java:36) [jmeter-plugins-perfmon-2.1.jar:?] at kg.apc.jmeter.perfmon.PerfMonCollector.shutdownConnectors(PerfMonCollector.java:281) [jmeter-plugins-perfmon-2.1.jar:?]  at kg.apc.jmeter.perfmon.PerfMonCollector.testEnded(PerfMonCollector.java:149) [jmeter-plugins-perfmon-2.1.jar:?]   at org.apache.jmeter.reporters.ResultCollector.testEnded(ResultCollector.java:346) [ApacheJMeter_core.jar:5.1.1 r1855137]   at org.apache.jmeter.engine.StandardJMeterEngine.notifyTestListenersOfEnd(StandardJMeterEngine.java:218) [ApacheJMeter_core.jar:5.1.1 r1855137] at org.apache.jmeter.engine.StandardJMeterEngine.run(StandardJMeterEngine.java:492) [ApacheJMeter_core.jar:5.1.1 r1855137] at java.lang.Thread.run(Unknown Source) [?:1.8.0_211]*
    

    我做了 telnet privateip:4444 并通过了测试命令。服务器代理返回了是的数据。此设置正在本地机器上运行。不在 AWS 盒子上。
    请让我知道会出现什么问题?

【问题讨论】:

    标签: jmeter


    【解决方案1】:
    1. 如果您在同一台机器上运行 Server Agent 和 JMeter,只需使用 localhost

    2. 你可能需要在Windows Firewall中打开4444端口

    3. 如果服务器代理绑定到 IPv6 地址,您可能需要设置java.net.preferIPv4Stack property to true

    4. 在安全组中只打开一个端口就足够了,例如:

      EC2 security groupsVPC security groups 之间也有区别,请务必使用正确的

    更多信息:How to Monitor Your Server Health & Performance During a JMeter Load Test

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-12
      • 2018-08-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-31
      相关资源
      最近更新 更多