Hello Brett!
Greetings.
In the thread dump attached, I don't see any major problem. It looks like you have captured the thread dump when application was healthy. Just one observation is: you have configured 69 Garbage Collection threads. Sometimes having too many threads can turn out to be counter productive of Garbage collection. However we can't confirm this is a problem, until we see the Garbage collection log.
Thread dump should have been captured during the problematic period, i.e. at the end of the 3rd day before restart the application. That too one snapshot of thread dump isn't enough, you might have to capture atleast 3 snapshots of thread dumps in a gap of 10 seconds.
Tomcat can hang because of several reasons: Long GC pause, memory leak, poor DB query, lack of threads, wrong connection pool configurations, device's capacity, network latency, inefficient code, ... Thread dump only gives small subset of information, to diagnose the problem. Inorder to diagnose tomcat hang, you need to capture 360-degree data such as: Thread dumps, Heap dumps, Garbage collection logs, vmstat, iostat, top, top -H, df, netstat... You can consider using 14-day trial of yCrash. It captures all of the above data, analyzes them and generates root cause analysis report of the slowdown.
Edit your Comment