您的位置:首页 > 其它

性能问题——CPU高了怎么办?

2012-05-17 10:54 176 查看
本文主要介绍性能问题中CPU高的定位方法和定位工具的使用

一 . CPU高的定位方法

通常情况下,当我们发现系统进程的CPU使用过高时,就需要分析系统是否正常,内部是否有死循环。当外界压力停止一段时间之后,如果系统的CPU使用率降到100以下,基本可以确认系统没有死循环;如果系统的CPU使用率在系统停止之后还达到100或者更高,而且一直持续下去,基本就可以确定系统内部存在死循环。

定位方法:

先需要找到占用CPU高的线程,然后对线程堆栈进行分析,结合业务代码分析原因。

1) 通过top –Hp pid 可以按照CPU使用率由高到低打印线程ID(十进制);

1) 将线程堆栈打印(按照之前的方法)出来,然后将线程PID换算成16进制的ID找出线程的堆栈信息,然后结合代码进行分析。

注:情况下,用kill -3 PID即可打印出线程堆栈信息;如果由于某种异常场景无法打印出线程堆栈信息,可以用jstack PID 命令打印线程堆栈信息

二性能问题CPU高的定位工具使用方法(Jprobe)

关于Jprobe工具的安装,配置,及使用方法可参见《经验:java应用性能分析-使用Jprobe定位java进程的性能问题.doc》
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: