Linux下JAVA线程占用CPU高一点分享

【本文转自Linux下JAVA线程占用CPU高一点分享

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

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

  1. top -Hp 28174 -d 1 -n 1  
  2. PID   USER      PR  NI  VIRT RES   SHR S  %CPU %MEM  TIME+   COMMAND
  3. 32694 root      20   0 3249m 2.0g  11m S    2  6.4   3:31.12 java             
  4. 28175 root      20   0 3249m 2.0g  11m S    0  6.4   0:00.06 java                 
  5. 28176 root      20   0 3249m 2.0g  11m S    0  6.4   1:40.79 java                 
  6. 28177 root      20   0 3249m 2.0g  11m S    0  6.4   1:41.12 java                 
  7. 28178 root      20   0 3249m 2.0g  11m S    0  6.4   1:41.11 java                 
  8. 28179 root      20   0 3249m 2.0g  11m S    0  6.4   1:41.33 java                 
  9. 28180 root      20   0 3249m 2.0g  11m S    0  6.4   1:41.58 java                 
  10. 28181 root      20   0 3249m 2.0g  11m S    0  6.4   1:40.36 java                 
  11. 28182 root      20   0 3249m 2.0g  11m S    0  6.4   1:41.02 java                 
  12. 28183 root      20   0 3249m 2.0g  11m S    0  6.4   1:40.96 java                 
  13. 28184 root      20   0 3249m 2.0g  11m S    0  6.4   4:38.30 java                 
  14. 28185 root      20   0 3249m 2.0g  11m S    0  6.4   0:00.46 java                 
  15. 28186 root      20   0 3249m 2.0g  11m S    0  6.4   0:01.83 java                 
  16. 28187 root      20   0 3249m 2.0g  11m S    0  6.4   0:00.00 java                 
  17. 28189 root      20   0 3249m 2.0g  11m S    0  6.4   0:00.01 java                 
  18. 28190 root      20   0 3249m 2.0g  11m S    0  6.4   0:49.01 java    


(3)打印占CPU最高JAVA进程28174的堆栈信息 
  1. /usr/java/jdk1.6.0_21/bin/jstack 28174 > /root/mss/41-100javathreaddump.txt  


(4)占CPU最高线程32694换算成16进制到文档中寻找对应线程 7fb6  
  1. "MSXMLProcessorThread" prio=10 tid=0x00002b469923a800 [color=darkred]nid=0x7fb6[/color] sleeping[0x00002b46b0200000]  
  2.    java.lang.Thread.State: TIMED_WAITING (sleeping)  
  3.         at java.lang.Thread.sleep(Native Method)  
  4.         at com.adventnet.management.xml.MSXmlProcessor.listen(MSXmlProcessor.java:279)  
  5.         at com.adventnet.management.xml.MSXmlProcessor.run(MSXmlProcessor.java:264)  
  6.         at java.lang.Thread.run(Thread.java:619)  

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值