Java应用线上问题排查思路

Posted yyml181231

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java应用线上问题排查思路相关的知识,希望对你有一定的参考价值。

CPU利用率飙升

1、定位cpu利用率最高的进程

top

2、定位使用cpu最高的线程

top -Hp pid 

3、线程id转化为16进制

printf ‘0x%x‘ tid

4、找到线程堆栈

jstack pid | grep tid

发现使用cpu最高的是业务线程

1、io wait
解决方法:
[1]: https://blog.csdn.net/lonyness/article/details/82628988 "记一次线上服务cpu占用率超过100%的问题排查"

等待内核态锁,如synchronized

1、查看阻塞线程堆栈

jstack -l pid | grep BLOCKED

2、dump线程栈,分析线程持锁情况

GC

1、可能是survivor区太小,对象过早进入老年代

线程池异常

1、对高RT接口进行限流
2、优化数据库




以上是关于Java应用线上问题排查思路的主要内容,如果未能解决你的问题,请参考以下文章

整理:Java 线上问题排查思路与工具使用

Java应用线上问题排查的常用工具和方法

Java: 线上故障如何快速排查?来看这套技巧大全(高德地图的总结)

让 Bug 无处藏身,Java 线上问题排查思路常用工具

redis 线上问题排查思路总结

JVM 线上故障排查基本操作--CPU飙高