背景
最近负责的一个项目上线,运行一段时间后发现对应的进程竟然占用了100%的CPU,导致公司的物理服务器都不堪重负,频繁宕机。那么,针对这类java进程CPU飙升的问题,我们一般要怎么去定位解决呢。
1、采用top命令定位进程
top -c
2、使用top -Hp命令定位线程
top -Hp 29706
3、使用jstack命令定位代码
1、线程号转换为16进制
printf "%x\n" 30309
2、采用jstack命令导出线程快照
jstack -l 29706 > ./jstack_result.txt
3、根据线程号定位具体代码
备注:-A<显示行数> : 除了显示符合范本样式的那一列之外,并显示该行之后的内容
标签:定位,java,top,CPU100%,jstack,线程,进程 From: https://www.cnblogs.com/liu-dong/p/16720500.html