JMeter PerfMon stops monitoring after while

277 views Asked by At

My perfMon pluggin stops monitoring the server health always after 6 seconds. perfMon chart

I am using:

  • jMeter 5.4.1
  • ServerAgent-2.2.1
  • jre1.8.0_241

I have a successful connection between my client and server station, first metrics are gathered, but always occurs an error:

INFO 2022-09-02 22:00:50.882 [kg.apc.p] (): Binding UDP to 4444

INFO 2022-09-02 22:00:51.882 [kg.apc.p] (): Binding TCP to 4444

INFO 2022-09-02 22:00:51.882 [kg.apc.p] (): JP@GC Agent v2.2.0 started

INFO 2022-09-02 22:01:04.713 [kg.apc.p] (): Accepting new TCP connection

INFO 2022-09-02 22:01:31.092 [kg.apc.p] (): Accepting new TCP connection

INFO 2022-09-02 22:01:31.108 [kg.apc.p] (): Yep, we received the 'test' command

INFO 2022-09-02 22:01:31.889 [kg.apc.p] (): Starting measures: cpu: memory:

ERROR 2022-09-02 22:02:22.744 [kg.apc.p] (): Error reading from the network layer

java.io.IOException: An existing connection was forcibly closed by the remote host

    at sun.nio.ch.SocketDispatcher.read0(Native Method)
    at sun.nio.ch.SocketDispatcher.read(Unknown Source)
    at sun.nio.ch.IOUtil.readIntoNativeBuffer(Unknown Source)
    at sun.nio.ch.IOUtil.read(Unknown Source)
    at sun.nio.ch.SocketChannelImpl.read(Unknown Source)
    at kg.apc.perfmon.PerfMonWorker.read(PerfMonWorker.java:181)
    at kg.apc.perfmon.PerfMonWorker.processCommands(PerfMonWorker.java:97)
    at kg.apc.perfmon.AgentTool.processParams(AgentTool.java:72)
    at kg.apc.cmdtools.PluginsCMD.processParams(PluginsCMD.java:63)
    at kg.apc.cmdtools.PluginsCMD.processParams(PluginsCMD.java:23)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at kg.apc.cmd.UniversalRunner.main(UniversalRunner.java:175)

ERROR 2022-09-02 22:02:23.635 [kg.apc.p] (): Cannot send data to TCP network connection

java.io.IOException: An existing connection was forcibly closed by the remote host

    at sun.nio.ch.SocketDispatcher.write0(Native Method)
    at sun.nio.ch.SocketDispatcher.write(Unknown Source)
    at sun.nio.ch.IOUtil.writeFromNativeBuffer(Unknown Source)
    at sun.nio.ch.IOUtil.write(Unknown Source)
    at sun.nio.ch.SocketChannelImpl.write(Unknown Source)
    at kg.apc.perfmon.PerfMonWorker.processSenders(PerfMonWorker.java:281)
    at kg.apc.perfmon.PerfMonWorker.run(PerfMonWorker.java:243)
    at java.lang.Thread.run(Unknown Source)

I was looking for some clues, but I didn't find them : D. What do you think is the issue here?

Thanks in advance for your help Guys!

1

There are 1 answers

2
Dmitri T On

Take a look at your Server Agent console, if you see something like:

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x0000000000bd4ed4, pid=25076, tid=0x0000000000004674
#
# JRE version: Java(TM) SE Runtime Environment (8.0_261-b12) (build 1.8.0_261-b12)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.261-b12 mixed mode windows-amd64 compressed oops)
# Problematic frame:
# C  [sigar-amd64-winnt.dll+0x14ed4]

it means that you're suffering from SIGAR bug 136 and it means that you either need to re-compile the sigar-amd64-winnt.dll or take the fixed version i.e. from here and replace the one in the "lib" folder of your Server Agent installation.

Also be aware that there is ServerAgent-2.2.3 and JMeter 5.5 and according to JMeter Best Practices you should always be using the latest version of JMeter so may be it worth considering upgrading