如何快速定位JVM中消耗CPU最多的线程?
第一步、先找出Java的进程PID
ps -ef | grep 进程名关键字
第二步、找出该进程内最消耗CPU的线程
top -Hp log4x R 94.7 0.8 :11.79 java -server -Xms268435456 -Xmx268435456
log4x R 87.1 0.8 :17.90 java -server -Xms268435456 -Xmx268435456
log4x R 86.1 0.8 :16.26 java -server -Xms268435456 -Xmx268435456
log4x R 68.0 0.8 :12.31 java -server -Xms268435456 -Xmx268435456
log4x S 7.3 0.8 :44.70 java -server -Xms268435456 -Xmx268435456
第三步、将线程编号转换成十六进制
[root@test185 ~]# printf "%x\n"
431f
第四步、用jstack PID打印出进程内所有的线程堆栈
jstack > .txt
第五步、根据线程的十六进制编码,在堆栈文件中定位具体的线程堆栈。
nid=0x431f
如何快速定位JVM中消耗CPU最多的线程?的更多相关文章
- 【转】如何快速定位JVM中消耗CPU最多的线程?
[转]如何快速定位JVM中消耗CPU最多的线程? https://mp.weixin.qq.com/s?__biz=MzIwMzg1ODcwMw==&mid=2247487802&id ...
- 如何快速定位JVM中消耗CPU最多的线程? Java 性能调优
https://mp.weixin.qq.com/s/ZqlhPC06_KW6a9OSgEuIVw 上面的线程栈我们注意到 nid 的值其实就是线程 ID,它是十六进制的,我们将消耗 CPU 最高的线 ...
- Java 性能优化实战记录(1)---定位并分析耗cpu最多的线程
1) jps 列出相关的java进程, 以及对应的pid 也可以使用如下命令来尝试 ps aux | grep java --color 2) top -Hp <pid> ...
- 定位java程序中占用cpu最高的线程堆栈信息
找出占用cpu最高的线程堆栈信息 在java编码中,有时会因为粗心导致cpu占用较高的情况,为了避免影响程序的正常运行,需要找到问题并解决.这里模拟一个cpu占用较高的场景,并尝试定位到代码行. 示例 ...
- 查看进程中占cpu高的线程方法
当在任务管理器中发现有进程占用cpu过高的时候通过下面的指令将进程快照导出到c盘 jstack -l 进程PID > c:/进程PID.stack (此命令生成.stack文件在c盘中,用文本 ...
- [javascript]巧用sourcemap快速定位javascript中的问题
大家都有过用-min.js开发的经历,但这样的脚本调试非常头疼.如果使用为压缩版的,上线前又要去压缩,sourcemap的出现完美解决了这一问题. 即便是chrome提供了格式化代码但阅读压缩后的代码 ...
- 找出Java进程中大量消耗CPU
原文:https://github.com/oldratlee/useful-shells useful-shells 把平时有用的手动操作做成脚本,这样可以便捷的使用. show-busy-java ...
- 快速定位java系统的线上问题--转
原文地址:http://m.blog.csdn.net/article/details?id=43376943 前言:我们的场景并没有像BAT等大型互联网公司里的系统那么复杂,但是基本上也有一定的规模 ...
- 定位现网环境中最耗费CPU的Java线程
参考:JVM性能调优监控工具jps.jstack.jmap.jhat.jstat.hprof使用详解 下面通过一个实例找出某个Java进程中最耗费CPU的Java线程并定位堆栈信息,用到的命令有ps. ...
随机推荐
- UISplitViewController
前言 大多数时候,iPhone.iPod 应用与 iPad 应用开发没有太大的区别,但是 iPad 的屏幕比 iPhone 大, 设计程序时可以充分利用 iPad 的大屏幕特点,例如 TabBar 和 ...
- 659. Split Array into Consecutive Subsequences
You are given an integer array sorted in ascending order (may contain duplicates), you need to split ...
- atcoder 2579
You are taking a computer-based examination. The examination consists of N questions, and the score ...
- Java基础笔记(十八)——多态
多态表示同一个操作作用在不同对象时,会有不同的结果. 多态可分为编译时多态和运行时多态. 编译时多态:方法重载,编译时就可以确定到底调用哪个方法,可以被看做一个类中的方法多态性. 运行时多态:只有在运 ...
- Android自动化----adb shell,appium,uiautomator2
1.区别 1,adb shell脚本的方式 不但可以在有电脑的情况下使用,通过数据线连接电脑然后adb shell命令,而且还可以打包成app,在手机的终端使用adb shell命令. 2,appiu ...
- json遍历,List<Map<String,Object>>遍历
js怎样给input对象追加属性,如disabled $(":textbox").attr({"disabled":true}); List<Map< ...
- Experimental Educational Round: VolBIT Formulas Blitz J
Description IT City company developing computer games invented a new way to reward its employees. Af ...
- echarts设置线条粗细
series: [ { name:"buy", type:'line', data:[], itemStyle: { normal: { color: '#6cb041', lin ...
- echarts和highcharts
highcharts是基于svg技术的 echarts基于canvas 后者可以在浏览器中实现3D图形 链接 ,这种效果highcharts是完全不可能做得到的.
- python3+selenium获取列表某一列的值
python3+selenium获取列表某一列的值 我们在坐自动化测试时,我们可能不想单纯的想验证一个选项卡,我们让脚本随机选择一个选项进行接下来的操作.例如我们想获取列表某一列的某一个数据(随机的) ...