前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >记一次懵比的Tomcat进程CPU使用率100%

记一次懵比的Tomcat进程CPU使用率100%

作者头像
小柒2012
发布2018-04-13 11:44:36
3.2K0
发布2018-04-13 11:44:36
举报
文章被收录于专栏:IT笔记IT笔记
3.jpg
3.jpg

问题描述

前几天线上服务器某个Tomcat进程突然间歇性CPU占用率100%,这个并不是突然性的,而是有规律的,Top了一下基本每隔30s飙升一次,坐等5s左右回落。虽然这酱紫,由于是多核CPU,外加其实并没有多少真实用户在访问,也并不影响什么。

解决思路

由于是间隔性的飙升,首先检查了一下Tomcat服务下是否存在高频计算的定时任务,然并卵,连个定时任务都没有。

这就奇了怪了,推测是不是某个服务有定时统计的请求,由于项目中使用了Dubbo,但是也并没有嵌入统计配置,此路不通。

既然这样不妨分析一下到底是Tomcat进程中的那个线程导致CPU飙升的。首先使用Top命令找到CPU飙升的进程PID,然后执行以下命令,查找导致问题的线程。

代码语言:javascript
复制
#8564为进程号PID
top -H -p 8564

等待一段时间,找出CPU飙升的线程ID,然后转十六进制

代码语言:javascript
复制
#172为线程ID
printf %x 2212

然后执行以下命令,定位CPU飙升的线程堆栈信息

代码语言:javascript
复制
jstack 8564|grep -A 10 8a4

格式:jstack [进程] | grep -A 10 [线程的16进制] ,-A 10表示查找到所在行的后10行。

1.png
1.png
2.png
2.png

来回定位就这俩,一个是Tomcat自身相关的,一个是监控的应该不是这个问题。分析了半天,也没个结果,临近下班了,再等几分钟重启试试,看明天是否还有这个问题。

3.jpg
3.jpg

第二天,上线Top监控了一下,半天也没反应,难道好了?又等了半天,还是没动静,果然好了,这件事说明一个问题,如果实在找不到原因所在,就重启吧!!!

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-10-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 问题描述
  • 解决思路
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档