如果线上某台虚拟机CPU load过高,该如何快速排查原因?

造成CPU load过高的原因:Full gc的次数增大、代码中存在BUG(比如死循环、正则的不恰当使用等)都有可能会造成cpuload增高。
排查方法(思路和linux的命令):
1、jps -v:查看java进程号
2、top -Hp [java进程号]:查看当前线程下最耗费CPU的线程
3、print"%x\n"[步骤2中的java进程号]:得到线程的16进制表示
4、jstack[java进程号] | grep -A 100 [步骤3的结果]:查看线程堆栈,定位代码行。参考:如何是使用JStack分析线程状态。

猜你喜欢

转载自blog.csdn.net/l2470334493/article/details/108671758