Linux-Tomcat进程CPU使用率100%原因分析

1 篇文章 0 订阅
1 篇文章 0 订阅
最近有个应用,在生产环境会出现100%的情况,时间没有规律,查看Tomcat日志、应用日志没有查到有效的信息,没有定位产生的原因,最终通过linux的top命令、jstack定位到问题,下面介绍下解决的方法。

1、使用top查看CPU使用较高的进程信息

[img]http://dl2.iteye.com/upload/attachment/0130/2748/f3a507b1-7e51-30ba-b8fe-0f448f11551f.png[/img]

2. 查看相关进程信息
top -H -p 1167
说明:1167为进程ID
此时,可以看到进程1167下面的相关线程信息。占用资源较多的线程会排在前几个

[img]http://dl2.iteye.com/upload/attachment/0130/2750/ccf2d832-e14c-3013-83cc-9417faa43c6c.png[/img]

3. 线程消耗信息后,我们jstack来查看一下某个线程的堆栈信息
使用方法:
jstack [进程] | grep -A 20 [线程的16进制]
-A 20表示查找到所在行的后20行
例如我们要线程号为1243的线程堆栈信息,先将1243转成16进制 4db,执行下面的命令
jstack 1167|grep -A 20 4db
执行完毕,我们会看到如图所示的堆栈信息,此时我们就能结合相关线程提示的信息来定位cpu100%的原因

[img]http://dl2.iteye.com/upload/attachment/0130/2752/70d16cc8-46f5-3b0b-b7fb-3ab546369631.png[/img]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值