操作系统:centos7
这里我们模拟一个CPU占用100%的程序,程序很简单死循环 。
文章插图
运行该程序,然后通过top命名查看:
文章插图
找到执行CPU占用高的JAVA进程,对应的PID为510
接着使用如下命令查看具体是哪个线程执行CPU过高
【Java线上CPU100% 问题排查】top -Hp 510
-H:显示线程信息
文章插图
这里发现PID为511的线程执行CPU占用过高 。
接下来通过jstack -l 510 来查看当前java程序的线程栈,同时将我们上一步查找到的CPU执行过高的线程PID 511 转换成16进制 :511===》1FF
文章插图
这样我们就定位到了我们程序问题所在的位置 。接下来我们检查代码即可 。
完毕!!!
推荐阅读
- JavaScript,如何在字符串中找到一个字符?
- 支付宝app支付服务端的实现-Java版
- JavaScript运行机制
- 开发者应知道的方法论:JavaScript中的DILOS原则
- 线上故障如何快速排查?来看这套技巧大全
- Java内置条件队列应用,实现经典的生产者消费者算法
- java 异步编程
- gta5仿线上mod 圣安地列斯模仿gta5的mod包
- java中常见的六种线程池详解
- 线上应用诊断与调试利器——Arthas