假如生产环境出现CPU占用过高,如何排查与定位

1. 先用top命令找出CPU占比最高的,如下图最高的为java应用,pid为3989

假如生产环境出现CPU占用过高,如何排查与定位_第1张图片

         2.用ps –ef或者jps进一步定位,得知是一个怎样的一个后台程序

ps -ef | grep java|grep -v grep

假如生产环境出现CPU占用过高,如何排查与定位_第2张图片

         3.定位到具体线程或者代码

         ps -mp 3989 -o THREAD,tid,time

         -m:显示所有线程

         -p:pid进程使用CPU的时间

         -o:该参数后是用户自定义格式

假如生产环境出现CPU占用过高,如何排查与定位_第3张图片

         4.将需要的线程ID转换为16进制格式(英文小写格式)

         如上图所示,线程ID为3990,16进制为F96,小写为f96

         5.jstack 进程ID | grep tid(英文小写) -A60

假如生产环境出现CPU占用过高,如何排查与定位_第4张图片

         6.回到工程去查看代码

假如生产环境出现CPU占用过高,如何排查与定位_第5张图片

你可能感兴趣的:(Linux学习)