获取java最耗cpu资源线程信息

n=$1
if [ -z $n  ];
then
    n=1
fi
pid=`jps -lv|grep Server|awk '{print $1}'`
ps H -eo pid,ppid,tid,time,%cpu --sort=%cpu|grep $pid>Thread.txt
jstack  $pid >/wls/wls81/jstack.txt
tid=`tail -n$n Thread.txt |awk {'print $3'}`
cpu=`tail -n$n Thread.txt |awk {'print $5'}`
tid_16=`echo "obase=16;$tid"|bc|tr "[:upper:]" "[:lower:]" `
i=1
for tid_l in $tid_16
do
    echo "tid:$tid_l "
    cpu_l=`echo $cpu|cut -d " " -f $i`
    echo "cpu:$cpu_l"
    task_state=`cat /proc/$pid/task/$tid_l/stat|cut -d " " -f 3`
    echo "task_state:$task_state"                                
    num_threads=`cat /proc/$pid/task/$tid_l/stat|cut -d " " -f 20`
    echo "num_threads:$num_threads"  
    vsize=`cat /proc/$pid/task/$tid_l/stat|cut -d " " -f 23`
    echo "vsize:$vsize" 
    rss=`cat /proc/$pid/task/$tid_l/stat|cut -d " " -f 24`
    echo "rss:$rss" 
    rlim=`cat /proc/$pid/task/$tid_l/stat|cut -d " " -f 25`
    echo "rlim:$rlim" 
    nswap=`cat /proc/$pid/task/$tid_l/stat|cut -d " " -f 36`
    echo "nswap:$nswap" 
    cat jstack.txt|grep 0x$tid_l
    ((i=i+1))

done


转载于:https://www.cnblogs.com/zymaxs/p/4292943.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值