0
点赞
收藏
分享

微信扫一扫

java 进程:cpu占用高、死锁的排查办法

有态度的萌狮子 2021-09-24 阅读 43
日记本

生产环境下,如果出现此类问题时,可通过线程的堆栈,查找、定位问题所在。

提供如下三种办法:

一、通过top和jstack

命令解释:

top命令中的pid和jstack中的nid的关系

1、pid是10进制的

2、nid是16进制的

二、通过arthas

官网:https://arthas.aliyun.com/doc/idea-plugin.html

arthas的功能很强大,具体可以查看官网。

解决cpu、死锁之类的问题时,以下命令比较常用

dashboard命令(dashboard 1)

thread命令(thread -n 10)

三、通过show-busy-java-threads 

下载地址:https://github.com/oldratlee/useful-scripts/blob/master/docs/java.md#-show-busy-java-threads

切换到:/opt/abc/useful-scripts-release-2.x/bin

执行命令:./show-busy-java-threads

四、优缺点比较

1、top和jstack ,linux和java的自带命令,不需要额外安装;操作稍微复杂

2、arthas 需要单独启动一个服务;需要熟悉arthas的命令

3、show-busy-java-threads 单独上传一个脚本即可,操作比较简单,是top和jstack的封装

举报

相关推荐

0 条评论