linux java cpu 100%问题排查

一、通过jdk自带包里面的工具
1.
通过top找出cpu高的PID
例如(这里cpu占用率不高,随便找个java进程做个例子):
linux java cpu 100%问题排查_第1张图片
可以通过ps aux | grep PID可以更详细的看到这个进程到底是什么项目

2.top -H -pPID 找到cpu占用率比较高的线程tid
如:top -H -p21264
linux java cpu 100%问题排查_第2张图片

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等工具——自己调研一下

你可能感兴趣的:(Linux)