When we launch applications, we specify the initial memory size and maximum memory size. For the applications that run on JVM (Java Virtual Machine), initial and maximum memory size is specified through ‘-Xms’ and ‘-Xmx’ arguments. If Java applications are running on containers, it's specified through ‘-XX: InitialRAMPercentage’ and ‘-XX: MaxRAMPercentage’ arguments. Most enterprises set... Continue Reading →
Memory leak due to improper exception handling
In this post let's discuss an interesting memory problem we confronted in the production environment and how we went about solving it. This application would take traffic for a few hours after that it would become unresponsive. It wasn't clear what was causing the unresponsiveness in the application. Video: To see the visual walk-through of... Continue Reading →
W-JAX 2021 – LET’S CRASH THE APPLICATIONS!
JAX – Online conference is the meeting place for all Java and software architecture enthusiasts! This year also, they have conducted an online conference to exchange knowledge and ideas from speakers all over the world. They have invited our architect to present the topic “Let's crash the applications!”. In this session, sample code snippets that... Continue Reading →
OutOfMemoryError: Kill process or sacrifice child – causes & solutions
There are different flavors of OutOfMemoryError. One of the flavours of OutOfMemoryError is 'Kill Process or sacrifice child'. This post discusses what triggers this 'Kill Process or sacrifice child' OutOfMemoryError and potential solutions to diagnose this problem. What triggers Out Of memory: Kill Process or sacrifice child? When processes in the host tend to consume... Continue Reading →
Troubleshooting OutOfMemoryError – Heap dump, Eclipse MAT
Learn how to troubleshoot OutOfMemoryError using the Eclipse MAT tool. You will learn best practices, cool tips & tricks to debug memory problems effectively. Watch this video to know more! Video: To see the visual walk-through of this post, click below: https://youtu.be/SuguH8YBl5g
Chaos Engineering – Simulating OutOfMemoryError
In the series of chaos engineering articles, we have been learning to simulate various performance problems. In this post, let's discuss how to simulate 'java.lang.OutOfMemoryError: Java Heap space' problem. This 'java.lang.OutOfMemoryError: Java Heap space' will be thrown by the application when the application generates more objects than the allocated heap size. Sample Program Here is... Continue Reading →
JAX Online 2020 – WHY & HOW TO WRITE MEMORY EFFICIENT CODE?
JAX - Online Edition 2020 is the conference for JAVA, architecture and software innovations. This conference had 4 major workshops and nearly 20 sessions presented by many speakers from all over the world! All were performed live, carried out with the video platform and designed interactively for the developers. Our Architect Ram Lakshmanan's Why and... Continue Reading →
7 JVM arguments of Highly Effective Applications
At the time (March 2020) of writing this article there are 600+ arguments that you can pass to JVM just around Garbage collection and memory. If you include other aspects, total JVM arguments count will easily cross 1000+. 😊. It's way too many arguments for anyone to digest and comprehend. In this article, we are... Continue Reading →
How is HeapHero different?
Heap dump files are large in size (several GB). To troubleshoot the heap dump, you have to transmit the heap dump file from your production server to your local machine
TCP: out of memory — consider tuning tcp_mem
Recently we experienced an interesting production problem. This application was running on multiple AWS EC2 instances behind Elastic Load Balancer. The application was running on GNU/Linux OS, Java 8, Tomcat 8 application server. All of sudden one of the application instances became unresponsive. All other application instances were handling the traffic properly. Whenever the HTTP request... Continue Reading →
