CPU 定位高
2015-12-05 23:51
204 查看
流程:把线程dump出来,然后分析
1:Threaddump的方法:
kill -3 pid
jstack -l pid
jvisualvm中来thread dump
2:找到导致cpu高的线程
top -H -p pid
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
4691 root 19 0 448m 132m 13m S 0.0 7.5 0:00.01 java
4692 root 19 0 448m 132m 13m S 0.0 7.5 0:00.39 java
4698 root 15 0 448m 132m 13m S 0.0 7.5 0:14.14 java
4699 root 15 0 448m 132m 13m S 0.0 7.5 0:00.43 java
4700 root 15 0 448m 132m 13m S 0.0 7.5 0:00.63 java
4701 root 18 0 448m 132m 13m S 0.0 7.5 0:00.00 java
对应的线程id是十进制的,需要转换为十六进制的在threaddump文件中才可以看到
3:十进制转十六进制
-bash-3.2# python
>>> print hex(4739)
0×1283
4:找到对应的线程
vi threaddump.log
查找:/0×1283
找到对应的线程,把相关的方法找出来,可以精确到代码的行号,自己修改相关源码来fix bug。
1:Threaddump的方法:
kill -3 pid
jstack -l pid
jvisualvm中来thread dump
2:找到导致cpu高的线程
top -H -p pid
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
4691 root 19 0 448m 132m 13m S 0.0 7.5 0:00.01 java
4692 root 19 0 448m 132m 13m S 0.0 7.5 0:00.39 java
4698 root 15 0 448m 132m 13m S 0.0 7.5 0:14.14 java
4699 root 15 0 448m 132m 13m S 0.0 7.5 0:00.43 java
4700 root 15 0 448m 132m 13m S 0.0 7.5 0:00.63 java
4701 root 18 0 448m 132m 13m S 0.0 7.5 0:00.00 java
对应的线程id是十进制的,需要转换为十六进制的在threaddump文件中才可以看到
3:十进制转十六进制
-bash-3.2# python
>>> print hex(4739)
0×1283
4:找到对应的线程
vi threaddump.log
查找:/0×1283
找到对应的线程,把相关的方法找出来,可以精确到代码的行号,自己修改相关源码来fix bug。
相关文章推荐
- 220-推桌子
- Add Two Numbers
- First Missing Positive
- 男生女生配
- 关于数组的练习题:
- Bootstrap历练实例:响应式标签页
- UESTC 1256 昊昊喜欢运动 n^2的预处理 or 前缀和
- 学习JS摘录
- HDUBC12.05题目
- sendredirect()和forward()的区别
- mysql学习之旅
- Bestcoder round #65 && hdu 5592 ZYB's Premutation 线段树
- C# winform 键盘全局事件
- 86-找球号
- 前端总结
- python 调试方法
- [置顶]搜索引擎-一种提示词推荐算法
- Java Annotation 及几个常用开源项目注解原理简析
- Linux TCP拥塞控制算法原理解析
- 将博客搬至CSDN