[Email protected]:~/tmp# cat java_analy.sh
#!/bin/bash
t= ' ps-mp $1-o thread,tid,time|sort-k 2-nr|awk ' {print $ ', ' $8 ', ' $9} ' |head-n 11|grep-v '-' '
For I in $T
Do
Consum= ' echo $i |awk-f ', ' ' {print '} '
Tid= ' echo $i |awk-f ', ' ' {print $} '
Dtime= ' echo $i |awk-f ', ' ' {print $} '
Id= ' printf '%x\n ' $tid '
echo "thread consumes CPU: $consum% Run time: $dtime thread ID: $id" >>analy.txt
Jstack $ |grep $id-A->>analy.txt
echo "" >>analy.txt
echo "===========================================================================================" >> Analy.txt
Done
Instructions for use: Use top to query the PID of a Java program that consumes high CPU, and then execute the./java_analy.sh pid then give the generated Analy.txt file to development.
Reference Link: http://blog.csdn.net/blade2001/article/details/9065985
Java Program Troubleshooting script--cpu High occupancy