Weblogic非常耗CPU的时候,如何知道是什么在耗性能?
1.先用top看进程的消耗,记录下消耗高的进程pid
2.先用top -Hp pid(进程id) 看线程的消耗
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
14537 weblogic 20 0 26.0g 9.3g 11m R 41.8 7.4 56:21.87 java
14530 weblogic 20 0 26.0g 9.3g 11m R 40.5 7.4 56:35.16 java
14535 weblogic 20 0 26.0g 9.3g 11m R 40.2 7.4 56:38.38 java
14541 weblogic 20 0 26.0g 9.3g 11m R 39.2 7.4 56:28.74 java
14546 weblogic 20 0 26.0g 9.3g 11m R 39.2 7.4 56:48.28 java
14526 weblogic 20 0 26.0g 9.3g 11m R 38.8 7.4 56:28.37 java
14528 weblogic 20 0 26.0g 9.3g 11m R 38.8 7.4 56:26.32 java
14534 weblogic 20 0 26.0g 9.3g 11m R 38.8 7.4 56:30.50 java
14536 weblogic 20 0 26.0g 9.3g 11m R 38.5 7.4 56:32.87 java
14531 weblogic 20 0 26.0g 9.3g 11m R 38.2 7.4 56:48.41 java
14525 weblogic 20 0 26.0g 9.3g 11m R 37.5 7.4 56:32.14 java
14539 weblogic 20 0 26.0g 9.3g 11m R 37.5 7.4 56:32.48 java
14542 weblogic 20 0 26.0g 9.3g 11m R 36.9 7.4 56:33.60 java
14527 weblogic 20 0 26.0g 9.3g 11m R 36.5 7.4 56:31.93 java
14543 weblogic 20 0 26.0g 9.3g 11m R 36.5 7.4 56:29.06 java
14532 weblogic 20 0 26.0g 9.3g 11m R 35.9 7.4 56:35.01 java
14533 weblogic 20 0 26.0g 9.3g 11m R 35.5 7.4 56:27.61 java
14544 weblogic 20 0 26.0g 9.3g 11m R 35.5 7.4 56:29.22 java
14545 weblogic 20 0 26.0g 9.3g 11m R 35.5 7.4 56:34.25 java
14540 weblogic 20 0 26.0g 9.3g 11m R 34.5 7.4 56:43.82 java
14524 weblogic 20 0 26.0g 9.3g 11m R 33.9 7.4 56:29.71 java
14538 weblogic 20 0 26.0g 9.3g 11m R 33.9 7.4 56:26.12 java
14529 weblogic 20 0 26.0g 9.3g 11m R 32.9 7.4 56:19.01 java
..........................省略若干行...................................
3.刚才记录消耗高的进程pid,然后使用jstack pid 得到thread dump
......................省略若干行.......................................
"VM Thread" prio=10 tid=0x00007f10ac094800 nid=0x38d3 runnable
"GC task thread#0 (ParallelGC)" prio=10 tid=0x00007f10ac01f800 nid=0x38bc runnable
"GC task thread#1 (ParallelGC)" prio=10 tid=0x00007f10ac021800 nid=0x38bd runnable
"GC task thread#2 (ParallelGC)" prio=10 tid=0x00007f10ac023800 nid=0x38be runnable
"GC task thread#3 (ParallelGC)" prio=10 tid=0x00007f10ac025000 nid=0x38bf runnable
"GC task thread#4 (ParallelGC)" prio=10 tid=0x00007f10ac027000 nid=0x38c0 runnable
"GC task thread#5 (ParallelGC)" prio=10 tid=0x00007f10ac029000 nid=0x38c1 runnable
"GC task thread#6 (ParallelGC)" prio=10 tid=0x00007f10ac02b000 nid=0x38c2 runnable
"GC task thread#7 (ParallelGC)" prio=10 tid=0x00007f10ac02c800 nid=0x38c3 runnable
"GC task thread#8 (ParallelGC)" prio=10 tid=0x00007f10ac02e800 nid=0x38c4 runnable
"GC task thread#9 (ParallelGC)" prio=10 tid=0x00007f10ac030800 nid=0x38c5 runnable
"GC task thread#10 (ParallelGC)" prio=10 tid=0x00007f10ac032000 nid=0x38c6 runnable
"GC task thread#11 (ParallelGC)" prio=10 tid=0x00007f10ac034000 nid=0x38c7 runnable
"GC task thread#12 (ParallelGC)" prio=10 tid=0x00007f10ac036000 nid=0x38c8 runnable
"GC task thread#13 (ParallelGC)" prio=10 tid=0x00007f10ac038000 nid=0x38c9 runnable
4. 对应top -Hp pid(进程id)的线程id和jstack pid中的nid
如 十进制14537 转成十六进制38c9,十进制14524转成十六进制38bc 。