cpu使用时间百分比过高 排查
2015-04-08 14:00
197 查看
参考:http://my.oschina.net/hyp3/blog/133617
问题分析:
1,程序属于CPU密集型,和开发沟通过,排除此类情况。
2,程序代码有问题,出现死循环,可能性极大。
经一番baidu、google找到方法定位:
解决method:
1,根据top命令,发现PID例为9999的Java进程占用CPU高达xxx%,出现故障。
2,找到该进程后,如何定位具体线程或代码呢,首先显示线程列表,并按照CPU占用高的线程排序:
[root@localhost logs]#
ps -mp 9999-o THREAD,tid,time | sort -rn
显示结果如下:
USER %CPU PRI SCNT WCHAN USER SYSTEM TID TIME
root 10.5 19 - - - - 7777 00:15:46
root 10.1 19 - - - - 7778 00:15:54
找到了耗时最高的线程7777,占用CPU时间有xxx分钟了!
将需要的线程ID转换为16进制格式:
[root@localhost logs]#
printf "%x\n" 7777
ef1
最后打印线程的堆栈信息:
[root@localhost logs]#
jstack 9999|grep ef1 -A 30
问题分析:
1,程序属于CPU密集型,和开发沟通过,排除此类情况。
2,程序代码有问题,出现死循环,可能性极大。
经一番baidu、google找到方法定位:
解决method:
1,根据top命令,发现PID例为9999的Java进程占用CPU高达xxx%,出现故障。
2,找到该进程后,如何定位具体线程或代码呢,首先显示线程列表,并按照CPU占用高的线程排序:
[root@localhost logs]#
ps -mp 9999-o THREAD,tid,time | sort -rn
显示结果如下:
USER %CPU PRI SCNT WCHAN USER SYSTEM TID TIME
root 10.5 19 - - - - 7777 00:15:46
root 10.1 19 - - - - 7778 00:15:54
找到了耗时最高的线程7777,占用CPU时间有xxx分钟了!
将需要的线程ID转换为16进制格式:
[root@localhost logs]#
printf "%x\n" 7777
ef1
最后打印线程的堆栈信息:
[root@localhost logs]#
jstack 9999|grep ef1 -A 30
相关文章推荐
- cpu使用时间百分比过高 排查
- java问题排查工具之一板斧jstack——使用 jstack 定位 java进程CPU过高的问题
- 使用CPU时间戳进行高精度计时
- 获取系统时间几种方法 和 使用CPU时间戳进行高精度计时
- Windows2008上使用WMI时Lsass.exe占用CPU过高
- 使用线程池对应用程序产生线程个数与占用CPU时间的影响
- java虚拟机CPU占用率过高排查方法
- 使用CPU时间戳进行高精度计时
- 使用CPU时间戳进行高精度计时
- 使用CPU时间戳进行高精度计时
- 获取系统时间几种方法 和 使用CPU时间戳进行高精度计时收藏
- memCached客户端CPU过高问题的排查
- C#实现测量程序运行时间及cpu使用时间
- C#实现测量程序运行时间及cpu使用时间(转载)
- 使用CPU时间戳进行高精度计时
- [转载] 使用CPU时间戳进行高精度计时
- 使用CPU时间戳进行高精度计时
- 使用CPU时间戳进行高精度计时
- C#测量程序运行时间及cpu使用时间(转)
- memCached客户端CPU过高问题的排查