After more than 6 hours of running time, the CPU is loaded more and more. I can’t explain what the reason for this is. Sometimes the Payara server has to be restarted. The memory is not full or something similar. It’s just the CPU and the Payara itself that starts over-computing internally. An example from the thread dump, the thread no longer goes below 20% CPU load… After a few hours, other threads are added that do not use less CPU load permanently.
It’s always an “RMI TCP Connection Thread” that constantly robs me of CPU resources and at some point Payara is no longer usable.
You can say that on average every one to two hours, a new RMI thread is added, which permanently steals 20% CPU load.
A JSF application is currently running on the server.
Payara: 5.2022.5
Java: GraalVM 20-ce-21 Java8
Primefaces: 11
Linux: Debian / 8 Cores / 32GB Ram
“RMI TCP Connection(idle)” #5828 daemon prio=5 os_prio=0 tid=0x00007f9cd8085000 nid=0x548b waiting on condition [0x00007fa442ae9000]
java.lang.Thread.State: TIMED_WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x00000005c5bac7f0> (a java.util.concurrent.SynchronousQueue$TransferStack)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:460)
at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:362)
at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:941)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1073)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:750)
Locked ownable synchronizers:
- None