服务器java进程CPU占用高问题排查

1.使用top命令查看CPU占用

命令:top (top -c)

pid为5896 CPU占用经常在200%以上

2.查看进程对应的工程
命令:ps -aux|grep [pid]

我们这里每个项目都是 tomcat+工程名+端口号命名。通过这一条找到我们的进程所在工程为production

3.查看占用高的线程
命令:ps -mp [pid] -o THREAD,tid,time | sort -rn

4.将需要的线程ID转换为16进制格式
命令:printf "%x\n" tid

5.查看线程堆栈
命令:jstack [pid] |grep [0xtid] -A 30

或者直接用命令导出整个进程的堆栈 
jstack 5896>>5896.log

6.查看堆栈结果
在log中搜索 0x7c55和0x4159如下

两条都为python相关的调用

接下来就可以进行具体分析了

根据线程time推算大概是2018年11月29日的调用,服务器的线程时间指CPU时间,不一定和标准时间相同。

后续就是对这段时间的接口调用就行调查了。把问题代码改完后重启tomcat进程看有无问题。

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值