转自: http://blog.chinaunix.net/uid-10449864-id-3463151.html
生产环境下JAVA进程高CPU占用故障排查
问题描述:
生产环境下的某台tomcat7服务器,在刚发布时的时候一切都很正常,在运行一段时间后就出现CPU占用很高的问题,基本上是负载一天比一天高。
问题分析:
1,程序属于CPU密集型,和开发沟通过,排除此类情况。
2,程序代码有问题,出现死循环,可能性极大。
问题解决:
1,开发那边无法排查代码某个模块有问题,从日志上也无法分析得出。
2,记得原来通过strace跟踪的方法解决了一台PHP服务器CPU占用高的问题,但是通过这种方法无效,经过google搜索,发现可以通过下面的方法进行解决,那就尝试下吧。
解决过程:
1,根据top命令,发现PID为2633的Java进程占用CPU高达300%,出现故障。
2,找到该进程后,如何定位具体线程或代码呢,首先显示线程列表,并按照CPU占用高的线程排序:
[root@localhost logs]# ps -mp 2633 -o THREAD,tid,time | sort -rn
显示结果如下:
USER %CPU PRI SCNT WCHAN USER SYSTEM TID TIME
root 10.5 19 - - - - 3626 00:12:48
root 10.1 19 - - - - 3593 00:12:16
找到了耗时最高的线程3626,占用CPU时间有12分钟了!
将需要的线程ID转换为16进制格式:
[root@localhost logs]# printf "%x\n" 3626
e18
最后打印线程的堆栈信息:
[root@localhost logs]# jstack 2633 |grep e18 -A 30
将输出的信息发给开发部进行确认,这样就能找出有问题的代码。
通过最近几天的监控,CPU已经安静下来了。
相关推荐
java进程高CPU占用故障排查
Java线程CPU占用高原因排查方法,Java线程CPU占用高原因排查方法
java进程占用CPU和内存太高问题排查相关测试文件
java cpu 内存占用高 问题 模拟并排查 https://blog.csdn.net/jiankunking/article/details/79749836 https://blog.csdn.net/jiankunking/article/details/79749483
Linux系统中java进程占用cpu资源过高,分析(自用,需要私聊)
Linux CPU占用率高故障排查.docx
NULL 博文链接:https://ainn2006.iteye.com/blog/1549724
2.jstack pid >> java.txt 导出CPU占用高进程的线程栈。 3.top -H -p PID 查看对应进程的哪个线程占用CPU过高。 4.echo “obase=16; PID” | bc 将线程的PID转换为16进制。 5.在第二步导出的Java.txt中...
当用户量过大,或服务器性能不足以支持大用户量,但同时又得不到扩容的情况下,进行性能分析,并对系统、...目前大多数运维产品都基于JAVA语言开发,读过本文分享的在linux环境下对JAVA的性能分析手段会让你受益匪浅。
本文主要记录一次tomcat进程,因TCP连接过多导致CPU占用过高的问题排查记录。 问题描述 linux系统下,一个tomcat web服务的cpu占用率非常高,top显示结果超过200%。请求无法响应。反复重启依然同一个现象。 问题...
CPU 高消耗排查
线上故障排查方法记录
CPU占用率高的九种可能
Java程序 CPU占用100%问题排查通过top确认问题进程,获得pid。根据pid查出问题线程,获得线程id,tid。通过jstack把pid的信息导出文件
在某个新服务器上,新建了一个MySQL的实例,该服务器上面只有MySQL这一个进程,但是CPU的负载却居高不下,使用top命令查询的结果如下: [dba_mysql@dba-mysql ~]$ top top - 17:12:44 up 104 days, 20 min, 2 ...
802.1x与EAD故障排查 AM接口故障排查 ARP-DETECTION故障排查 BGP MPLS故障排查 BGP故障排查 BPDU Tunnel故障排查 DHCP Server故障排查 DVPN HUB-HUB DVPN HUB-SPOKE 2 DVPN HUB-SPOKE DVPN DVPN故障排查 E1POS...
EoC双向网改造导致电视播放异常故障排查.pdf EoC头端无法管理故障排查.pdf EoC终端注册不上故障排查.pdf EoC终端配置下发不生效故障排查.pdf EoC网络PPPoE拨号上网故障排查.pdf EPON EPON网络监控业务不通...
CPU占用过高是LINUX服务器出现常见的一种故障,也是程序员线上排查错误必须掌握的技能,我们经常需要找出相应的应用程序并快速地定位程序中的具体代码行数,本文将介绍一种CPU占用过高的一种处理思路,文中采用四...
一个应用占用CPU很高,除了确实是计算密集型应用之外,通常原因都是出现了死循环。下面这篇文章主要给大家介绍了一次因Java应用造成CPU过高的排查实践过程,文中通过示例代码介绍的非常详细,需要的朋友可以参考下