Chaos Engineering – Thread Leak

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 thread leaks. ‘java.lang.OutOfMemoryError: unable to create new native thread’ will be thrown when more threads are created than the memory capacity of the device. When this error is thrown, it will disrupt the application’s availability.

Continue reading “Chaos Engineering – Thread Leak”

Java threads – may not be memory efficient?

Java applications tend to contain hundreds (sometimes thousands) of threads. The majority of these threads are in WAITING, TIMED_WAITING (i.e., dormant) state, while only a small portion of the threads are actively executing lines of code. So, we were curious to know whether dormant threads consume less memory than active threads.

To figure out an answer to this question, we conducted a small study. Our findings were interesting, thus sharing with you.

Continue reading “Java threads – may not be memory efficient?”

Best practices: Java memory arguments for Containers

When you are running your Java application in physical servers, you would have been using ‘-Xmx’ JVM argument to specify the Java heap size. If you are porting your application to Containers, you might be wondering how to configure Java heap size in the container’s world? Are there any best practices? In this article, we will discuss the possible JVM arguments that can be used to specify the Java heap size and the best option to choose. 

Continue reading “Best practices: Java memory arguments for Containers”

Powered by WordPress.com.

Up ↑