Java --- 线上故障调优01 打印堆栈信息

Java
1.找出Java程序死循环导致的cpu飙高
1)先用top命令找到哪个进程cpu占用过高,找到pid (定位是否是Java程序占用过高)
2)ps -ef或者jps进行进一步定位 (找到具体的某个Java程序进程)
ps -ef|grep java|grep -v grep

jps -l

3)定位到具体的线程
ps -mp 进程id -o THREAD,tid,time

-m:显示所有线程
-p:pid的进程使用cpu的时间
-o:该参数后是用户自定义格式

4)将需要的线程id转成16进制(英文小写)

5)jstack 进程id|grep tid(16进制,英文小写) -A60
展示这个线程的日志的前60行-->定位到具体的代码

出故障了:一般做法=调试+排查+检索

原文地址:https://www.cnblogs.com/kltsee/p/14072600.html