*&%#* The system is running slow again! Now what? Is there a space hog application sucking up all my resources? Did we just crash? No, must not say that word…must not say that word… …still running, just sloooowly. I wonder if anything new has been installed… Nice if they told me. I overheard that something new might have been installed last week. Could there be a memory leak? Are they checking for one? Are they looking in the right place?
Hide and seek with a leak is NO fun. How many times have you sat staring at your monitor until your eyes burn and blur, trying to figure out where the problem lies? There are so many places to look for a leak, that it is virtually impossible to find manually. And how do I tell the difference between a leak and increased demand? The symptoms can be similar.
It is important to analyze all of the leak possibilities, because at the end of the day, if you are leaking memory in the JVM, you will find an increase in the heap and an increase in GC activity, culminating in hangs or blocks and finally, OutOfMemory exceptions. If the Java code is meant to run on a server 24 hours a day, then memory leaks can become significant. Even the smallest leak in code that is run continuously will eventually result in the JVM exhausting all of the memory available.
Some examples of Memory Leak causes are:
- Handle Leak
- Class Loader Leak
- Thread Leak
- Unchecked arrays
- Bugs in the code
- Unchecked hash map growth
- Programmers forgetting to close prepared statements, sockets or file handles
Some of these problems are extremely difficult to troubleshoot. These leaks need to be found, addressed and handled ASAP.
With the number of things an IT group has to handle on any given day, there just isn’t the time or the manpower to take an exceptional amount of time to deal with manual leak detection. Automation is the only logical way to find them. To be notified when there is a possible leak detected and how to mitigate a JVM failure is the optimal solution. No headaches, no blurry vision, no screaming users. How good life could be.
For more information on how you can automate your leak detection and ease the stress of your day, listen to the Nastel TechTalk, “Java Memory Leaks II – Detection to Diagnostics”