CPU爆表排查脚本

2019-06-21  本文已影响0人  a9104fed92a0

!/bin/bash

JAR=uzone-indonesia-service-api-1.0.0-SNAPSHOT.jar

获取应用进程号

pid=ps -ef | grep $JAR | grep -v grep | awk '{print $2}'
echo pid if [ -zpid ]
then
echo "PID is NULL"
exit 1
fi

找到该进程中占用较高的前30个线程号

DATE=date +%Y%m%d%H%M%S
ps -mp {pid} -o THREAD,tid,time | sort -rn |head -30 >{DATE}_mytmp.out

获取线程信息

while read line
do
tid=echo $line | awk '{print $8}'
echo tid if [ "{tid}" = "-" ]
then
echo "this is '-'"
else
echo "TID is :"tid>>{DATE}_busy_thread.log
sixteenth=printf "%x" $tid
echo "Transform to 0xxxx is :"sixteenth >>{DATE}_busy_thread.log
jstack {pid} | grepsixteenth -A 30 >>{DATE}_busy_thread.log fi done <{DATE}_mytmp.out

echo "Finished!"

上一篇 下一篇

猜你喜欢

热点阅读