linux java cpu 100%问题排查

一、通过jdk自带包里面的工具
1.
通过top找出cpu高的PID
例如(这里cpu占用率不高,随便找个java进程做个例子):
在这里插入图片描述
可以通过ps aux | grep PID可以更详细的看到这个进程到底是什么项目

2.top -H -pPID 找到cpu占用率比较高的线程tid
如:top -H -p21264
在这里插入图片描述

3.其次将需要的线程ID转换为16进制格式:
printf “%x\n” tid
如 printf “%x\n” 21276
在这里插入图片描述
4.通过jstack查看这个线程现在在执行的东西
jstack pid |grep tid -A 50
如:jstack 21264 | grep 531c -A 50

二、通过arthas快速定位
官网:https://alibaba.github.io/arthas/
1.启动arthas(查官网)
2.dashboard 找cpu占用高的线程
3.thread 线程id 查看调用堆栈

三、jmap使用
1.通过top找出内存占用高的PID
1.jmap -dump:format=b,file=/mnt/result.data PID
导出改PID的内存情况
2.通过eclipse的mat工具或者其他工具,导入这个result.data文件,可以可视化看具体的内存情况
排序找内存占用比较大的对象

四、perf等工具——自己调研一下

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值