Quando l'applicazione Java è bloccata, non si conosce nemmeno il caso d'uso che sta conducendo a questo e si vuole indagare, capisco che i dump dei thread possono essere utili.Thread Dump Analysis Tool/Metodo
Ma come possiamo facilmente ricavare dati utili dai dump di thread per trovare dove si trova il problema? L'applicazione server con cui lavoro ha generato dump di thread molto lunghi, poiché si tratta di un'architettura EJB e i dump dei thread contengono molti thread contenitore che non sono sicuro di dover esaminare (ovvero i thread che non eseguono il codice dell'applicazione , ma il codice di JBoss).
Ieri ho provato lo strumento Thread Dump Analyzer. Lo strumento è decisamente migliore rispetto ai dump di thread non elaborati in un editor di testo, perché puoi filtrare i thread che non ti interessano, vedere l'elenco dei thread, fare clic su un thread per visualizzarne i dettagli, confrontare i dump di thread per trovare lungo thread in esecuzione, ecc veda la figura sottostante:
ma c'è ancora troppi dati da analizzare - quasi 300 discussioni. Non conosco alcun criterio che possa essere utilizzato per filtrare tutti i thread di JBoss, in cui non sono interessato. Non sono sicuro se dovrei guardare i thread che sono attualmente in stato "runnable" o se "waiting on condition" e "in Object.wait" sono anche importanti.
Qual è l'approccio che normalmente seguiresti e gli strumenti che utilizzeresti in generale?
Vedere anche https://www.ibm.com/developerworks/community/groups/service/html/communityview?communityUuid=2245aa39-fa5c-4475-b891-14c205f7333c – oluies
Ho scritto questo, analizza discariche, nessuna installazione necessario: http://spotify.github.io/threaddump-analyzer/ –
@JohanWalles bel strumento! – ycomp