寻找java应用的性能瓶颈----CPU消耗分析


  通常Linux的CPU主要用于中断、内核、用户进程的处理,优先级由高到低为中断>内核>用户进程


1.利用top或pidstat方式查看CPU消耗情况

1)分析us用户进程,找到十进制PID值,并转化为16进制的值,通过kill -3 [javapid]或jstack的方式dump出应用的java线程信息,通过之前转化的16进制值找到对应的nid值的线程,该线程即为消耗CPU的线程。【多次尝试】

ex.PID=26697转化为十六进制的值为0x6849

结合java thread dump(jstack pid | grep ‘nid=0x6849’)找到此线程.

除了jstack外可以借助商业工具vtune

2)sy系统进程

通过kill -3 [javapid]或jstack -l [javapid]导出java应用程序线程的信息,主要包括状态信息和锁信息





你可能感兴趣的:(java,性能,cpu)