java面试-生产环境出现CPU占用过高,谈谈你的分析思路和定位

 思路:结合Linux和JDK命令一起分析

1、top命令找出CPU占比最高的进程

2、ps -ef|grep java|grep -v grep 或者jps -l进一步定位,得知是怎样一个后台程序惹事

3、定位到具体线程:ps -mp 进程编号 -o THREAD,tid,time 

ps -mp 4618 -o THREAD,tid,time

-m:显示所有线程
-p pid:进程使用CPU的时间
-o:用户自定义格式  

4、将需要的线程ID转换为16进制格式:printf "%x " 有问题的线程id

printf "%x
" 4619  

5、jstack 进程ID|grep tid(16进制线程小写英文)-A60

 jstack 4618 | grep 120b -A60  

 

原文地址:https://www.cnblogs.com/wjh123/p/11146231.html