Are You Really Out Of Memory

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 contributesNikita_Salnikov-Tarnovski 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.

Java Performance: The Definitive Guide: Getting the Most Out of Your Code

Price: $33.31

4.2 out of 5 stars (31 customer reviews)

60 used & new available from $10.15

Java Performance Tuning (2nd Edition)

Price: $34.78

3.6 out of 5 stars (19 customer reviews)

39 used & new available from $2.10

Related Posts

  • Are You Really Out Of Memory – Part IIAre You Really Out Of Memory – Part II In this series of articles Nikita Salnikov-Tarnovski (LinkedIn), the co-founder of Plumbr discusses the performance and stability issues in Enterprise Java applications due to memory leaks. Nikita goes on to talk about various approaches to identifying memory leaks through the use of […]
  • To Execution profile or to Memory Profile – Kirk Pepperdine at InfoQTo Execution profile or to Memory Profile – Kirk Pepperdine at InfoQ I recently had a group of developers performance troubleshooting a problem-riddled application from my performance workshop. After dispensing with a couple easy wins, the group was faced with a CPU that was running very hot. The group reacted exactly in the same way that I see most teams […]
  • Garbage Collection Optimization for High-Throughput and Low-Latency Java ApplicationsGarbage Collection Optimization for High-Throughput and Low-Latency Java Applications This article was written by Swapnik Ghike, Software Engineer LinkedIn and posted at the LinkedIn Engineering Blog.  High-performance applications form the backbone of the modern web. At LinkedIn, a number of internal high-throughput services cater to thousands of user requests per […]
  • Java Performance Optimization Series – Eva Andreasson at JavaworldJava Performance Optimization Series – Eva Andreasson at Javaworld This series of articles will help any Performance Engineer or Java developer learn more about the underlying layers of the JVM and what a JVM really does under the hood. The author Eva Andreasson (at talks at a high level about the key components of a Java Virtual Machine […]