Hello Nidhi!
Greetings. I looked in to your 8 snapshots of thread dumps which were captured from 6:42 - 6:49? Did you capture the thread dumps after recycling the JVM? Because thread dumps looks quite normal. You should capture thread dumps before recycling the JVM. Unresponsiveness in the application can happen because of several reasons:
- Garbage collection pauses
- Memory leak
- Network connectivity
- Load balancer routing issue
- Heavy CPU consumption of threads
- Operating System running with old patches
- DB not responding properly
- CPU/Memory starvation
:
:
So just thread dump is not enough to diagnose the problem. You have captured only thread dump, that too one snapshot of it. It's always a good practice to capture 3 thread dumps in a gap of 10 seconds between each one. Besides thread dumps you might have to capture other logs/artifacts to do thorough analysis.
You can use the open source yCrash script which will capture 360-degree application level artifacts (like GC logs, 3 snapshots of thread dumps, heap dumps) and system level artifacts (like top, top -H, netstat, vmstat, iostat, dmesg, diskusage, kernel parameters...). Once you have these data, either you can manually analyze them or upload it to yCrash tool, which will analyze all these artifacts and generate one unified root cause analysis marrying all these artifacts.
Edit your Comment