找到最耗CPU的java线程

原创 2013年12月05日 16:06:40

 

 

找到最耗CPU的java线程

1 找出占用cpu过高的进程ID号

   命令: top -c
  
 

 

 

 2 找出该进程下,运行时间过长的进程 id号.

     命令:ps -mp 10024 -o THREAD,tid,time | sort -rn


 
 

 

 3 因为在java堆栈日志中,线程id以 16 进程存储,因此我们需要先把 10 进制的线程id,转为 16 进制.

   命令:printf "%x\n" 11490
 
 

 

4 通过 jdk自带的jstack工具,打印堆栈异常信息.

   通过 printf "%x\n" 30834 首先转化成16进制, 继续通过jstack命令dump出当前的jvm进程的堆栈信息。 通过Grep命令即可以查到对应16进制的线程id信息,很快就可以找到对应最耗CPU的代码快在哪。

   命令:sudo ./jstack 10024|grep 2ce2 -A 30
 
 

 

Java代码  收藏代码
  1. "DboServiceProcessor-4-thread-295" daemon prio=10 tid=0x00002aab047a9800 nid=0x7d9b waiting on condition [0x0000000046f66000]  

nid : 对应的linux操作系统下的tid,就是前面转化的16进制数字

tid: 这个应该是jvm的jmm内存规范中的唯一地址定位,如果你详细分析jvm的一些内存数据时用得上,我自己还没到那种程度,所以先放下

 

 

 

 

  • 大小: 92.6 KB
  • 大小: 30.8 KB
  • 大小: 5.7 KB
  • 大小: 132.8 KB

使用jstack查看最耗CPU的java的线程

(1)首先第一步通过top -Hp proccessId,看对应的java进程中那些线程正在执行,及占用的cpu和memory的比例,如下图所示(PID列即为线程id) 查     (2) pr...
  • fycghy0803
  • fycghy0803
  • 2017年04月05日 14:51
  • 210

JVM调优之jstack找出最耗cpu的线程并定位代码

jstack可以定位到线程堆栈,根据堆栈信息我们可以定位到具体代码,所以它在JVM性能调优中使用得非常多。下面我们来一个实例找出某个Java进程中最耗费CPU的Java线程并定位堆栈信息,用到的命令有...
  • jek123456
  • jek123456
  • 2017年07月07日 17:40
  • 330

查找最耗时最费CPU的那个线程

1. ps -ef|grep java   查进程ID root      8514     1  0 Mar04 ?        01:37:59 /usr/java/bin/java -Dj...
  • qian_348840260
  • qian_348840260
  • 2015年03月13日 17:49
  • 1022

如何定位消耗CPU最多的线程

之前有朋友反馈说发的内容希望有个梯度,逐步加深,前面发了几篇关于jvm源码分析的文章,可能我觉得我已经把内容写得浅显易懂了,但是对于某些没怎么接触的同学来说还是比较难理解,这个我以后慢慢改进吧,今天发...
  • Erica_1230
  • Erica_1230
  • 2017年04月17日 20:24
  • 501

linux查找消耗cpu最高的线程(jstack),内存占用最大线程(jmap),线程gc情况(jstat)

1.linux下    top  命令查询查询消耗cpu最高的进程id 2.jstack
  • liujn347
  • liujn347
  • 2014年06月22日 13:33
  • 2279

jvm调优--查找最耗CPU的代码

今天在公司用mvn编译的时候,出现机器卡死的情况,让我深深的反省了一下。...
  • u014388509
  • u014388509
  • 2014年04月17日 11:25
  • 3341

查询耗费CPU最多的SQL语句

查询耗费CPU最多的SQL语句 SELECT TOP 10    total_worker_time/execution_count AS avg_cpu_cost, plan_handle...
  • cxzhq2002
  • cxzhq2002
  • 2015年07月22日 17:07
  • 719

oracle 实时查询最耗CPU资源的SQL语句

oracle 实时查询最耗CPU资源的SQL语句   1. 先通过top命令查看产用资源较多的spid号   2.查询当前耗时的会话ID,用户名,sqlID等: select sid...
  • haiross
  • haiross
  • 2014年01月21日 15:34
  • 3289

不要让CPU空转

怎么有个CPU占用100%?
  • hunger_wang
  • hunger_wang
  • 2017年01月09日 00:03
  • 604

不使用Sleep,如何让线程没任务时不占用CPU资源

//=========================================================================         // 函数名称: Supe...
  • u012795972
  • u012795972
  • 2014年10月12日 15:31
  • 1053
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:找到最耗CPU的java线程
举报原因:
原因补充:

(最多只允许输入30个字)