您的位置:首页 > 运维架构 > Linux

Linux下服务器CPU过高的诊断

2016-06-06 15:07 609 查看
    Weblogic非常耗CPU的时候,如何知道是什么在耗性能?

1.先用top看进程的消耗,记录下消耗高的进程pid

2.先用top -Hp pid[b](进程id) 看线程的消耗[/b]

  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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: