cpu使用率过高如何排查?

使用top命令查看哪一个进程的cpu使用率高,得到它的进程id


通过ps H -eo pid,tid,%cpu | grep 进程pid 查看该进程下面哪些线程使用cpu高。

由于使用jstack分析pid时会出现该进程下所有线程的分析情况,数据量大,所以要知道具体是那个线程cpu过高,我们再看相应的分析情况。而jstack分析信息里面线程用的16进制表示,我们要把刚才得到的线程id转化成11进制。计算器或者printf '%x' 十进制数 都可以。

然后使用jstack pid | grep tid(0x) -A20寻找分析信息中从包含16进制线程id开始后的20行信息。

可以看到是Main的第5行出现问题。去java文件看看,vim的命令行先输入:set number显示行号。

问题排查结束。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容