服务器java进程CPU占用高问题排查 - Go语言中文社区

服务器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 "%xn" tid

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

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

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

两条都为python相关的调用

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

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

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

 

 

 

 

 

 

 

 

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/gsls200808/article/details/100049380
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2019-08-27 22:20:16
  • 阅读 ( 1081 )
  • 分类:

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢