A thread dump is a snapshot of all the threads running in a java process. It’s a vital artifact to troubleshoot various production problems such as CPU spikes, unresponsiveness in the application, poor response time, hung threads, high memory consumption. Thus to facilitate troubleshooting, we have seen enterprises capture thread dumps on a periodic basis (every 5 minute or 2 minute).So we were curious to learn the overhead of capturing thread dump on a periodic basis. Thus we set out to conduct the below case study.Continue reading “Overhead added by collecting thread dumps”
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?”
In this series of chaos engineering articles, let’s discuss how to simulate CPU consumption to spike up to 100% on a host (or container). CPU consumption will spike up whenever a thread goes on an infinite loop. Here is a sample program from the open-source BuggyApp application, which would cause the CPU to spike up.Continue reading “Chaos Engineering – Simulating CPU spike”
yCrash app is a non-intrusive, secure, instant root cause analysis tool. It captures thread dump, heap dump, GC log, netstat, vmstat, top, and several more artifacts, right when the problem is happening in the production. It instantly analyzes all the artifacts & generates a root cause analysis report in the dashboard. Watch this below video clip to get a detailed overview of yCrash!