使用率排序
找出进程对应的线程 --> 过滤其它信息只留线程相关的内容 --> 对过滤的内容按占用cpu大小进行排序 --> 输出到文件中
top -H -p PID -d 1 -n 1 | grep java | awk '{print $2,$10}' | sort -r -k 2 > thread
脚本
#!/bin/bash
#
rm -rf xthread
jstack -l $1 > debug.log
top -H -p $1 -d 1 -n 1 | grep java |awk '{print $2,$10}' | sort -r -k 2 > thread
while read line;do
th=`echo $line | awk '{print $1}'`
printf "%x\n" ${th} >> xthread
done < thread
导出内存堆栈,使用 MAT 分析,-F 强制导出
jmap -dump:format=b,file=11010.dump 11010
命令行分析内存转储,生成html
./ParseHeapDump.sh ~/316/316dump.out ls
./ParseHeapDump.sh ~/316/316dump.out org.eclipse.mat.api:suspects org.eclipse.mat.api:overview org.eclipse.mat.api:top_components
评论