当前位置:首页 > 开发 > 系统架构 > 架构 > 正文

top命令找到占用CPU最高的java线程

发表于: 2015-06-15   作者:bijian1013   来源:转载   浏览:
摘要: 上次分析系统中占用CPU高的问题,得到一些使用Java自身调试工具的经验,与大家分享。 (1)使用top命令找出占用cpu最高的JAVA进程PID:28174 (2)如下命令找出占用cpu最高的线程 top -Hp 28174 -d 1 -n 1 32694 root 20 0 3249m 2.0g 11m S 2 6.4 3:31.12 java

上次分析系统中占用CPU高的问题,得到一些使用Java自身调试工具的经验,与大家分享。
(1)使用top命令找出占用cpu最高的JAVA进程PID:28174

(2)如下命令找出占用cpu最高的线程

top -Hp 28174 -d 1 -n 1
32694 root      20   0 3249m 2.0g  11m S    2  6.4   3:31.12 java           
       
28175 root      20   0 3249m 2.0g  11m S    0  6.4   0:00.06 java               
28176 root      20   0 3249m 2.0g  11m S    0  6.4   1:40.79 java               
28177 root      20   0 3249m 2.0g  11m S    0  6.4   1:41.12 java               
28178 root      20   0 3249m 2.0g  11m S    0  6.4   1:41.11 java               
28179 root      20   0 3249m 2.0g  11m S    0  6.4   1:41.33 java               
28180 root      20   0 3249m 2.0g  11m S    0  6.4   1:41.58 java               
28181 root      20   0 3249m 2.0g  11m S    0  6.4   1:40.36 java               
28182 root      20   0 3249m 2.0g  11m S    0  6.4   1:41.02 java               
28183 root      20   0 3249m 2.0g  11m S    0  6.4   1:40.96 java               
28184 root      20   0 3249m 2.0g  11m S    0  6.4   4:38.30 java               
28185 root      20   0 3249m 2.0g  11m S    0  6.4   0:00.46 java               
28186 root      20   0 3249m 2.0g  11m S    0  6.4   0:01.83 java               
28187 root      20   0 3249m 2.0g  11m S    0  6.4   0:00.00 java               
28189 root      20   0 3249m 2.0g  11m S    0  6.4   0:00.01 java               
28190 root      20   0 3249m 2.0g  11m S    0  6.4   0:49.01 java  

 

(3)打印占CPU最高JAVA进程28174的堆栈信息

/usr/java/jdk1.6.0_21/bin/jstack 28174 > /root/mss/41-100javathreaddump.txt

 

(4)占CPU最高线程32694换算成16进制到文档中寻找对应线程7fb6

"MSXMLProcessorThread" prio=10 tid=0x00002b469923a800 [color=darkred]nid=0x7fb6[/color] sleeping[0x00002b46b0200000]
   java.lang.Thread.State: TIMED_WAITING (sleeping)
        at java.lang.Thread.sleep(Native Method)
        at com.adventnet.management.xml.MSXmlProcessor.listen(MSXmlProcessor.java:279)
        at com.adventnet.management.xml.MSXmlProcessor.run(MSXmlProcessor.java:264)
        at java.lang.Thread.run(Thread.java:619)

       

        以上过程手工进行,虽然不如Jprofiler和java自带的可视化工具那么直观,但是能够解决问题!尤其是在不能使用远程调试工具的时候,能够提供最大的帮助。

 

文章来源:http://lxiaodao.iteye.com/blog/1413774

top命令找到占用CPU最高的java线程

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
我的一个java程序偶尔会出现cpu占用很高的情况 一直不知道什么原因 今天终于抽时间解决了 系统是win
我的一个java程序偶尔会出现cpu占用很高的情况 一直不知道什么原因 今天终于抽时间解决了 系统是win
找到最耗CPU的java线程ps命令 命令:ps -mp pid -o THREAD,tid,time 或者 ps -Lfp pid 结果展示:
找到最耗CPU的java线程 1 找出占用cpu过高的进程ID号 命令: top -c 2 找出该进程下,运行时间过长的
在这里对linux下、sun(oracle) JDK的线程资源占用问题的查找步骤做一个小结;linux环境下,当发现ja
Android 后台线程及CPU占用 今天上午在调查一个奇怪的问题,我们的程序被切换到后台后CPU一直还占着
英文原文:http://blogs.manageengine.com/appmanager/2011/02/09/identify-java-code-consuming-hi
前  言   在系统维护的过程中,随时可能有需要查看 CPU 使用率,并根据相应信息分析系统状况的
不管你是新程序员还是老手,你一定在面试中遇到过有关线程的问题。Java语言一个重要的特点就是内置
在典型的Java面试中, 面试官会从线程的基本概念问起, 如:为什么你需要使用线程, 如何创建线程,
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号