作者:张振华(Jack)
这里对linux下、sun(oracle) JDK的线程资源占用问题的查找步骤做一个小结;
linux环境下,当发现java进程占用CPU资源很高,且又要想更进一步查出哪一个java线程占用了CPU资源时,按照以下步骤进行查找:
(一):通过【top -p 12377 -H】 查看java进程的有哪些线程的运行情况;
和通过【jstack 12377 > stack.log】生成Java线程的dump详细信息;先用top命令找出占用资源厉害的java进程id,如图:# top
如上图所示,java的进程id为'52554',接下来用top命令单独对这个进程中的所有线程作监视:
1top -p 52554 -H# top视图里面里面可以通过快捷键依次b ,x高亮显示top的列找出需要的线程,默认CPU排序,Shift+< ,Shift+>可以左右移动高亮排序的列;如图:(这时就看出来哪个java线程CPU高,哪个线程内存用的多)