【问题标题】:Can't connect TCP transport for host: localhost/127.0.0.1:4444 and Connection is refused to connect无法连接主机的 TCP 传输:localhost/127.0.0.1:4444 并且连接被拒绝连接
【发布时间】:2021-06-16 06:35:29
【问题描述】:

我正在尝试验证本地主机中的应用程序的服务器运行状况监视器。我得到以下回应。请看一下这个并帮助我。在查看结果树 HTTP 请求中显示响应为 200。 应用:通过Jmeter 托管应用程序:Java 11 指标:性能

2021-06-16 12:47:04,032 INFO o.a.j.e.StandardJMeterEngine: Running the test!
2021-06-16 12:47:04,033 INFO o.a.j.s.SampleEvent: List of sample_variables: []
2021-06-16 12:47:04,034 INFO k.a.j.p.PerfMonCollector: PerfMon metrics will be stored in C:\Users\DELL\AppData\Local\Temp\perfmon_4504784525335490183.jtl
2021-06-16 12:47:04,038 INFO o.a.j.g.u.JMeterMenuBar: setRunning(true, *local*)
2021-06-16 12:47:04,068 INFO o.a.j.e.StandardJMeterEngine: Starting ThreadGroup: 1 : Thread Group
2021-06-16 12:47:04,068 INFO o.a.j.e.StandardJMeterEngine: Starting 1 threads for group Thread Group.
2021-06-16 12:47:04,069 INFO o.a.j.e.StandardJMeterEngine: Thread will continue on error
2021-06-16 12:47:04,069 INFO o.a.j.t.ThreadGroup: Starting thread group... number=1 threads=1 ramp-up=1 delayedStart=false
2021-06-16 12:47:04,070 INFO o.a.j.t.ThreadGroup: Started thread group number 1
2021-06-16 12:47:04,070 INFO o.a.j.e.StandardJMeterEngine: All thread groups have been started
2021-06-16 12:47:04,070 INFO o.a.j.t.JMeterThread: Thread started: Thread Group 1-1
2021-06-16 12:47:06,002 INFO o.a.j.t.JMeterThread: Thread is done: Thread Group 1-1
2021-06-16 12:47:06,003 INFO o.a.j.t.JMeterThread: Thread finished: Thread Group 1-1
2021-06-16 12:47:06,004 INFO o.a.j.e.StandardJMeterEngine: Notifying test listeners of end of test
2021-06-16 12:47:06,006 ERROR k.a.p.c.AbstractTransport: Error during exit
java.net.SocketException: Connection reset by peer: socket write error
    at java.net.SocketOutputStream.socketWrite0(Native Method) ~[?:?]
    at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:110) ~[?:?]
    at java.net.SocketOutputStream.write(SocketOutputStream.java:138) ~[?:?]
    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:345) [ApacheJMeter_core.jar:5.4.1]
    at org.apache.jmeter.engine.StandardJMeterEngine.notifyTestListenersOfEnd(StandardJMeterEngine.java:218) [ApacheJMeter_core.jar:5.4.1]
    at org.apache.jmeter.engine.StandardJMeterEngine.run(StandardJMeterEngine.java:493) [ApacheJMeter_core.jar:5.4.1]
    at java.lang.Thread.run(Thread.java:834) [?:?]
2021-06-16 12:47:06,024 INFO o.a.j.g.u.JMeterMenuBar: setRunning(false, *local*)

【问题讨论】:

  • 这里没有“连接被拒绝”。对等方,无论它是什么,在您仍在向其发送时已断开连接。可能您发送了一些它不理解的内容。
  • 欢迎来到堆栈溢出。请改进您的问题的标题,以便它对其他有类似问题或知道补救措施的人有用。 (标题与引用的错误消息相矛盾没有有用。)请参阅How do I ask a Good Question?

标签: java jmeter perfmon


【解决方案1】:

你的平台是什么?

如果你在 Linux 上运行,可以通过 lsof -a -i4 -i6 -itcp 找到哪些进程实际打开了 tcp 端口

这会告诉你你的应用实际打开了哪个端口

【讨论】:

  • 我的是 Windows 机器,它只是我在机器上运行的示例应用程序。我正在使用 localhost:8080 调用此应用程序。端口是4444。
  • OK 您仍然可以通过运行 netstat 命令获取开放端口列表,请参阅geeksforgeeks.org/… 您查看端口列表的原因有很多,例如,是否有另一个应用程序打开了该端口,您的应用程序是否打开了另一个端口,而不是您告诉它打开的端口等等。
【解决方案2】:

JMeter PerfMon Metrics Collector 是一个侦听器,它与一个名为 PerfMon Server Agent 的特殊软件进行通信,因此为了能够收集机器性能指标,您需要将此服务器代理安装到要监控的机器上

  1. 下载ServerAgent-x.x.x.zip
  2. 在某处解压
  3. 在 Windows 上使用 startAgent.bat 脚​​本或在 Unix 和衍生产品上使用 startAgent.sh 来启动服务器代理
  4. 就是这样,您应该能够配置 PerfMon Metrics Collector 以从服务器代理查询您选择的metrics

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

【讨论】:

  • 感谢您的回复,是的,我也这样做了,并通过客户端和服务器连接来运行脚本。运行 Jmeter 脚本后,服务器立即断开连接并抛出错误。
  • 哪个错误?如果您面临this issue,则需要将 sigar-amd64-winnt.dll 替换为 this file(如果您关心安全性,请自行重新构建
  • 谢谢,我尝试在服务器代理中替换上面提到的 dll,它对我很有效。现在我可以毫无问题地测量 CPU 和内存利用率了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-25
  • 2017-11-09
  • 2015-07-31
  • 1970-01-01
  • 2020-02-21
  • 2019-12-12
相关资源
最近更新 更多