tmoreira2020
11/14/2011 - 6:52 PM

Gets a thread dump and memory photo of a Java application

Gets a thread dump and memory photo of a Java application

#!/bin/bash

if [ -n "$1" ]; then
  for (( ; ; ))
  do
    echo "infinite loops [ hit CTRL+C to stop]"
    pid=`jps | grep $1 | awk '{print $1}'`
    echo "Getting dump from process $pid"
    jstat -gcutil $pid 250 3 >> dump-memory-$pid.txt
    jstack -l $pid >> dump-thread-$pid.trc
    jstat -gcutil $pid 250 3 | grep -v YGC >> dump-memory-$pid.txt
    time=20;
    echo "Sleeping for $time seconds"
    sleep $time;
  done
else 
  You have to provide a process name, like "Bootstrap".
fi