首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Java定位CPU应用100%的方法

2012-10-24 
Java定位CPU使用100%的方法流程:把线程dump出来,然后分析1:Threaddump的方法:kill -3 pidjstack -l pidjvi

Java定位CPU使用100%的方法

流程:把线程dump出来,然后分析

1:Threaddump的方法:

  • kill -3 pid
  • jstack -l pid
  • jvisualvm中来thread dump

    2:找到导致cpu高的线程
    top -H -p pid
    ? PID USER????? PR? NI? VIRT? RES? SHR S %CPU %MEM??? TIME+? COMMAND?????????????????????????????????????????????????????????????
    ?4691 root????? 19?? 0? 448m 132m? 13m S? 0.0? 7.5?? 0:00.01 java????????????????????????????????????????????????????????????????
    ?4692 root????? 19?? 0? 448m 132m? 13m S? 0.0? 7.5?? 0:00.39 java????????????????????????????????????????????????????????????????
    ?4698 root????? 15?? 0? 448m 132m? 13m S? 0.0? 7.5?? 0:14.14 java????????????????????????????????????????????????????????????????
    ?4699 root????? 15?? 0? 448m 132m? 13m S? 0.0? 7.5?? 0:00.43 java????????????????????????????????????????????????????????????????
    ?4700 root????? 15?? 0? 448m 132m? 13m S? 0.0? 7.5?? 0:00.63 java????????????????????????????????????????????????????????????????
    ?4701 root????? 18?? 0? 448m 132m? 13m S? 0.0? 7.5?? 0:00.00 java???????????????????????????????????????????????????????????????

    ?对应的线程id是十进制的,需要转换为十六进制的在threaddump文件中才可以看到

    3:十进制转十六进制
    -bash-3.2# python
    >>> print hex(4739)
    0×1283

    4:找到对应的线程
    vi threaddump.log
    查找:/0×1283
    找到对应的线程,把相关的方法找出来,可以精确到代码的行号,自己修改相关源码来fix bug。

热点排行