kill-3PID命令获取java应⽤堆栈信息
⼀、应⽤场景:
  当linux服务器出现异常情况(响应缓慢,负载持续飙升)并且服务器没有安装对应的包⽽⽆法使⽤jstack等命令时,可以使⽤linux的kill 相关命令打印堆栈信息。
  命令格式:kill -3 PID
⼆、执⾏步骤:vim命令查关键字
2.1、获取java进程的PID
ps -ef|grep java
结果的第⼆列数字就是进程对应的pid。
2.2、kill -3 PID
(1)如果项⽬通过Tomcat进⾏发布(普通的web项⽬),则对应的堆栈信息会打印在catalina.out⽂件中。
(2)如果项⽬是基于SpringBoot并且使⽤nohup java -jar xxx.jar & 命令运⾏,则java堆栈信息会在jar包所在的nohup.out⽂件中。
三、查看堆栈信息
以nohup.out⽂件为例:
3.1、cd命令进⼊SpringBoot jar包所在的⽬录
3.2、vim nohup.out命令打开⽂件
3.3、按Shift+G快捷键跳到⽂件的末尾,再连续按Ctrl+B,直到向上翻页到堆栈信息(有java.lang.Thread.State关键字)
或者直接输⼊/java.lang.Thread.State再按Enter键,就可以⾼亮出关键字,再按N键,可以遍历查看。
vim常⽤翻页快捷键如下:
[Ctrl] + [f]屏幕『向下』移动⼀页,相当于[Page Down]按键 (常⽤)
[Ctrl] + [b]屏幕『向上』移动⼀页,相当于[Page Up]按键 (常⽤)
[Ctrl] + [d]屏幕『向下』移动半页
[Ctrl] + [u]屏幕『向上』移动半页
注:kill -3 PID命令只能打印那⼀瞬间java进程的堆栈信息,适合在服务器响应慢,cpu、内存快速飙升等异常情况下使⽤,可以⽅便地定位到导致异常发⽣的java类,解决如死锁、连接超时等原因导致的系统异常问题。该命令不会杀死进程。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。