Aleksandrs,
Indeed, as Senthilkumar indicated, the number of JVM tuning parameters is mind boggling. My guess is that a previous engineer ran into the same issue you’re running into and instead of digging to find the root cause, they attempted to “solve” the problem by copying-and-pasting all these JVM options from a Google search or from previous experience, and neither is very helpful. In fact, making so many changes can often have a detrimental effect. Once we figure out what the root cause is, we can work on cleaning these up.
Now, these settings further confirm my previous suspicion that your issue is likely due to poor memory use, leading to long garbage collection pauses. The good news is that based on your memory graph, your memory usage is high all the time, meaning we don’t have to wait for a specific, and perhaps elusive, event to figure out what’s consuming so much memory. In order to figure out what is consuming so much memory, you typically want to take a heap dump, using a command like jmap. You can then analyze the heap dump with a tool like MAT (Eclipse Memory Analyzer Open Source Project | The Eclipse Foundation) to determine the culprit(s). You may actually already have a heap dump laying around since you’re passing the HeapDumpOnOutOfMemoryError and HeapDumpPath options to the server.
The bad news is that your application seems to use a LOT of memory all the time so it’s going to take a long time to generate the heap dump (if you don’t have one already) and longer for MAT to parse it. You may want to consider reproducing the issue in a test environment with a smaller heap size so you can work with a smaller and more manageable heap dump. Of course, don’t make it too small, otherwise it will be more difficult to identity the culprit.
Percio
#webMethods#Integration-Server-and-ESB