大家好,又见面了,我是全栈君。
一、找到java进程id
jps查看当前运行的java进程id
[root@localhost ~]# jps
18354 Jps
9381 Bootstrap
二、找到内存和CPU占用最高的线程pid
1,使用命令top -p <pid> ,显示你的java进程的内存情况,pid是你的java进程号,比如123
2,按H,获取每个线程的内存情况
3,找到内存和cpu占用最高的线程pid,比如15248
4,执行 printf 0x%x 15248 得到 0x3b90 ,此为线程id的十六进制
# 查看java进程
top -p 9381
# 按H显示每个线程的内存
# 按M根据驻留内存大小进行排序
# 按P根据CPU使用百分比大小进行排序
# 打印线程ID的十六进制表示
printf 0x%x 9382
0x24a6
按H显示每个线程的内存
三、查看堆栈信息
5,执行 jstack 123|grep -A 10 3b90,得到线程堆栈信息中3b90这个线程所在行的后面10行
jstack 9381 | grep -A 10 24a6
6,查看对应的堆栈信息找出可能存在问题的代码
转载于:https://my.oschina.net/yysue/blog/1648104
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/107629.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...