6
I am monitoring a system that was made in Java and at certain times during the day the vast majority of Threads, about 95%, enter the WAIT state and are waiting for about 50 seconds on average, and sometimes the interval between breaks is 5 minutes. The result is that all user requests are waiting.
My question is how to know which Thread put all the others to wait? I’ve used some software that analyzes Thread Dump, but I haven’t been able to locate the cause yet.
I’m suspecting it’s the GC that wiping the memory put everything on pause until it’s over.
In this image, near 10:16 the vast majority entered the WAIT state, I had to cut the photo because it has much more Threads and all in the same state.
Your question is not clear enough. Do your threads do the same thing (that is, implement the same function only with parallel execution)? What exactly do they do? Is there any interaction between threads that might be causing them to be on hold (Idle)? Without these details, hardly anyone will be able to help you.
– Luiz Vieira