ivargrimstad / snoopee

SnoopEE - The Lean Microservice Framework for Java EE
http://snoopee.agilejava.eu/
MIT License
17 stars 6 forks source link

High CPU load #4

Closed ghost closed 7 years ago

ghost commented 7 years ago

When deploying the snoopee-service on a payara-full along with the other services the cpu load of the jvm rises to 80%. This happens on a windows 10 and a debian 8 machine, both running Java 8.

ghost commented 7 years ago

To precise the error:

The high cpu load occurs after invoking a method of SnoopEEServiceClient after a long idle time (1 hour). This happens on Arch Linux 64Bit. Is there something I should consider when injecting the SnoopEEServiceClient?

Regards Erik

ghost commented 7 years ago

Ok, after a long freeze time a NoClassDefFoundError was shown, which is crazy, because the class is included in the war file. The log of the payara server is also full of

To many open files

warnigs. Have you encountered this problem also? Is the solution to raise the open file limit (with ulimit -n)?

If you are interested in the log I can send it to you by email.

Best Regards Erik

ghost commented 7 years ago

The problem was that the open socket connections, especially from the heart beat, were never closed.

Here is the exception.

[2017-03-14T04:25:35.479+0000] [Payara 4.1] [WARNING] [] [sun.rmi.transport.tcp] [tid: _ThreadID=108 _ThreadName=RMI TCP Accept-8686] [timeMillis: 1489465535479] [levelValue: 900] [[ RMI TCP Accept-8686: accept loop for [SSL: ServerSocket[addr=/0.0.0.0,localport=8686]] throws java.net.SocketException: Too many open files (Accept failed) at java.net.PlainSocketImpl.socketAccept(Native Method) at java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:409) at java.net.ServerSocket.implAccept(ServerSocket.java:545) at sun.security.ssl.SSLServerSocketImpl.accept(SSLServerSocketImpl.java:348) at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.executeAcceptLoop(TCPTransport.java:400) at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.run(TCPTransport.java:372) at java.lang.Thread.run(Thread.java:745) ]]

So, I'll fork the project, commit my changes an do a merge request.

Best regards Erik