一、top命令定位cpu占用率高的进程号(pid),找到pid后,top -p pid -H,记录出cpu占用率高的线程号(tid),用printf "%x\n" tid将其转换为16进制
二、使用jstack打印进程信息,为准确定位可以多来几次,jstack pid > pid_1.log
三、打开日志文件,找到十六进制的线程信息,可定位到具体类的某一行。
示例
1、
1 Tasks: 546 total, 1 running, 544 sleeping, 0 stopped, 1zombie2 Cpu(s): 15.3%us, 0.1%sy, 0.0%ni, 84.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st3 Mem: 24633804k total, 23710152k used, 923652k free, 784472k buffers4 Swap: 32764556k total, 127120k used, 32637436k free, 7000668k cached5
6 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+COMMAND7 25930 weblogic 18 0 5311m 4.5g 29m S 488.1 19.3 35663:17java8 16830 weblogic 15 0 13168 1472 824 R 0.7 0.0 0:00.04top9 13834 weblogic 16 0 13028 1424 812 S 0.3 0.0 5900:50top10 17263 weblogic 23 0 2410m 1.5g 28m S 0.3 6.2 390:24.31java11 17438 weblogic 25 0 3429m 1.7g 25m S 0.3 7.2 217:35.39java12 26316 weblogic 23 0 4695m 2