I had a very strange problem with a Java application running under Tomcat.
We tried to update the production code from a new, recently released within 1 week sprint, the application runs for several months without failures, and then this new code forces our Linux servers to switch after a while.
It is very strange that when viewing VisualVM to use memory, it never exceeds the maximum heap size, the JVM does not throw OutOfMemory, the machine just starts replacing, and the JVM continues to work even after that.
So it seems like a memory leak from somewhere, it seems like this is from new code, but it is strange that it is not inside the JVM, any ideas on how to debug this?
Thanks!
source share