Script to Generate Series of Thread Dump
There are times when we want to see which threads are blocking our requests, and generating a thread dump is one way to find it out. The thing is sometimes we need to create a series of thread dumps, that’s why i have this script to do it for me. Create a file with the name of “jstack.sh”, with below script as its content
# number of cycles.
LOOP=3
# seconds between cycles.
INTERVAL=10
for ((i=1; i <= $LOOP; i++))
do
_now=$(date)
echo "\n \n ${_now}" >> cpu.out
top -l 1 -o cpu -pid $1 >> cpu.out
echo "\n \n ${_now}" >> tdump.out
jstack -l $1 >> tdump.out
echo "thread dump #" $i
if [ $i -lt $LOOP ]; then
echo "Sleeping..."
sleep $INTERVAL
fi
done
Repository for above script can be found below,
https://github.com/edwin/java-thread-dump