O conteúdo do script é muito útil para quem sabe o que fazer com ele e como analisar as saídas.
Cuidado ao utilizá-lo livremente em função do heapdump que é gerado a cada execução então precisam avaliar espaço em disco e impacto antes disto.
Ele serve para coletar diversas informações sem que seja necessário algo mais que o JDK instalado no servidor alvo que vão avaliar.
Exemplo de saída:
$ ./snapshot-jvm.sh
PID JVM -> 18854
Date execution -> Wed Oct 26 15:47:27 BRST 2016
Take thread dump...
Take memory snapshot...
Attaching to process ID 18854, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 24.79-b02
Attaching to process ID 18854, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 24.79-b02
finding class loader instances ..done.
computing per loader stat ..done.
please wait.. computing liveness..............liveness analysis may be inaccurate ...
Take memory dump...
Dumping heap to /opt/resources/temp/heapdump- 18854-15-2016-10-26.hprof ...
File exists
Snapshot resources in use
Check threads in use...
Finish.
Repositório para download : https://github.com/helkmut/ snapshot-jvm
Em resumo, após sua execução poderá avaliar threads ativas nos connectors, thread dump, heap dump e suas estatísticas, assim como estatísticas do uso dos recursos do servidor. Com essa informação conseguimos identificar uma contenção de recursos seguramente.
Espero ter ajudado de alguma forma, ao menos poupando o trabalho de fazer um script igual.