Introduction – So it’s just another day at work. You start your day by receiving another call from the operations team saying they now have to restart your production application every three to four hours just to keep it humming along. And boy, doesn’t this really annoy them. You have a strong feeling that their emotion is directly correlated to the number of phone calls the customer support team has been getting lately, which unfortunately has skyrocketed in the past few weeks.
Most of you am sure you have been through something very similar to the above. And I am also sure you wish you would never wish yourself in that situation ever again but the sad part is you will find yourself in such a situation. So why not arm yourself with an understanding of the right set of processes, tools and techniques to address the situation at hand.
Facing performance issues within your Java application? Give Plumbr a try – the application-aware JVM monitoring tool will pinpoint the problems with memory leaks and sub-optimal garbage collection configuration.
Things that go pop at night – All you have to start with is a symptom: an OutOfMemoryError. You have no clue what actually causes it. You cannot reproduce the problem in your test environments and you don’t have the right set of tools in production to help you out. You cannot see the log files in production because you don’t have the right levels of access but but you have been called upon to address the situation at hand and resolve the production issue. (I will definitely say a prayer for you..:)) You are just a developer and you are starting to feel dizzy already not really understanding how to go about identifying the source of the issue forget about fixing it. You decide to help out since you have your engineering pride and being a responsible human being you can’t shirk away responsibility.
In situations like these you would go through sleepless nights and painful days for weeks on end. Struggling with authorization issues and bureaucracy just trying to get access to the right set of production data so that you can do your analysis can be a real challenge as well. Getting ignorant people find the correct data for you is an issue we encounter ever so regularly. And to top it all having the boss breathe down on your neck does not help much either. “When will it be fixed, he keeps yelling?”
We bet, you’d rather estimate when the P versus NP problem will be solved and sipping a pinnacolada.
In this series of articles we will present tools, processes and techniques you could use to address situations like the one described above. This 5 part series will concentrate on how these situations are currently handled, what tools and techniques are popularly used and how you can benefit from them when in a similar situation. As a product development company, we would be mentioning our own solutions along the way, but we promise it will be an interesting read nonetheless! Here’s what’s to come –
- Why didn’t operations address the issue
- Where do you start with a challenge like this
- Using Memory profilers
- JDK Tools are handy
- Dump is where you start
We hope you take away some good learning from this series. Use the chat option at the end of this page to leave feedback and tell us what you think.
Nikita Salnikov-Tarnovski (LinkedIn) is the co-founder of Plumbr, the memory leak detection product, where he now contributes as a core developer. Besides his daily technical tasks Nikita is an active blogger, JavaOne RockStar and frequent conference speaker at several conferences around the world including – Devoxx, JavaOne Russia, 33rd Degree, TopConf, JavaDay, GeekOut, Joker, Jazoon etc. Prior to founding Plumbr, Nikita was a Java EE developer and performance consultant in the Baltics, and has worked on building numerous different Java EE Enterprise applications over the years. In the last four years he specialized in troubleshooting and performance optimization of Enterprise Java Applications.