jstack调试结果CPU使用过高的问题
来源:互联网 发布:部落冲突女王数据 编辑:程序博客网 时间:2024/06/03 15:57
jstack 可以定位到线程堆栈,根据堆栈信息我们可以确定到具体代码,所以JVM性能调优中用的非常多。下面我们将通过一个实例来找出java进程中最耗费CUP的线程,并定位堆栈信息。
1.将下面的代码打成可执行jar包
/** * * 这个方法为了验证jstack 作用 * */public class FindJavaThreadInTaskManager {public static void main(String[] args) {FindJavaThreadInTaskManager.method1();FindJavaThreadInTaskManager.method2();}/** * * 模拟多线程中cup低的方法 * */public static void method1() {Thread thread = new Thread(new Runnable() {@Overridepublic void run() {while (true) {System.out.println("当前线程名字为: " + Thread.currentThread().getName());}}});thread.setName("线程1");thread.start();}/** * * 模拟多线程中cup低的方法 * */public static void method2() {Thread thread = new Thread(new Runnable() {@Overridepublic void run() {while (true) {System.out.println("当前线程名字为: " + Thread.currentThread().getName());try {Thread.currentThread().sleep(50L);} catch (InterruptedException e) {e.printStackTrace();}}}});thread.setName("线程2");thread.start();}}2.在Linux上执行 该jar包
3.找到CPU利用率持续比较高的进程,获取进程号,此处PID为2419
4.找到上述进程中,CPU利用率比较高的线程号TID(十进制数),此处为3046
命令:
ps p 2419 -L -o pcpu,pid,tid,time,tname,cmd
//ps -Lfp2419 也可以,不过要看TIME列
5.将获取的线程号(十进制数)转换成十六进制,此处为97c
printf "%x\n" 2428
6.查看进程PID为2419中nid为0xb46的线程信息。
jstack 2419 |grep 97c
注:根据上面的信息可以确定具体哪个线程占用的CUP最多
另外也可以通过如下方法确认:
jstack -l 2419 | more
//上面‘-l’ 为‘-小写L’
备注:来源请参照 https://jingyan.baidu.com/album/4f34706e3ec075e387b56df2.html?picindex=6
阅读全文
0 0
- jstack调试结果CPU使用过高的问题
- 使用jstack分析cpu消耗过高的问题
- 使用jstack分析cpu消耗过高的问题
- 使用jstack分析cpu消耗过高的问题
- 使用jstack分析cpu消耗过高的问题
- 使用jstack分析cpu消耗过高的问题
- 使用jstack分析CPU消耗过高的问题
- 使用jstack分析cpu消耗过高的问题
- 使用jstack分析cpu消耗过高的问题
- 使用jstack分析cpu消耗过高的问题
- 使用jstack分析cpu消耗过高的问题
- 利用jstack分析JAVA应用CPU占用过高的问题
- 我们使用jdk自带的jstack来分析。当linux出现cpu被java程序消耗过高时
- top+jstack分析cpu过高原因
- 查机器CPU过高和内存过高的问题
- 解决CPU占用率过高的问题
- memCached客户端CPU过高问题的排查
- 解决cpu占用率过高的问题
- 背包板子总结
- codeforces 611B New Year and Old Property
- git commit --amend两种用法
- MindManager盘点——舌尖上的中国
- 解决编译ROS节点时出现的问题 Error: package 'chapter2_tutorials' not found
- jstack调试结果CPU使用过高的问题
- Android UI基础java代码基础点
- 轻量级锁和偏向锁
- 每天研究一个产品,阿德老师“手摸手”带你写产品分析报告 |
- c
- Android发送一个通知到状态栏去
- Vue——组件
- 相关JQuery函数封装
- 如何做好一条0~2岁的产品狗