生产环境下JAVA进程高CPU占用满载故障排查
来源:互联网 发布:遗传算法与蚁群算法 编辑:程序博客网 时间:2024/05/18 02:51
生产环境下JAVA进程高CPU占用满载故障排查
生产环境下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" 3626
e18
最后打印线程的堆栈信息:
[root@localhost logs]# jstack 2633 |grep e18 -A 30
将输出的信息发给开发部进行确认,这样就能找出有问题的代码。
通过最近几天的监控,CPU已经安静下来了。
阅读全文
0 0
- 生产环境下JAVA进程高CPU占用满载故障排查
- 生产环境下JAVA进程高CPU占用故障排查
- 生产环境下JAVA进程高CPU占用故障排查
- 生产环境下JAVA进程高CPU占用故障排查
- 生产环境下JAVA进程高CPU占用故障排查
- 生产环境下JAVA进程高CPU占用故障排查
- 生产环境下JAVA进程高CPU占用故障排查
- 生产环境下JAVA进程高CPU占用故障排查
- 生产环境下JAVA进程高CPU占用故障排查
- 生产环境下JAVA进程高CPU占用故障排查
- 生产环境下JAVA进程高CPU占用故障排查
- 生产环境下JAVA进程高CPU占用故障排查
- JAVA进程高CPU占用故障排查
- JAVA进程高CPU占用故障排查
- JAVA进程高CPU占用故障排查
- JAVA进程高CPU占用故障排查
- JAVA进程高CPU占用故障排查
- java 故障排查之一:高CPU占用
- MFC的消息映射
- Oracle学习笔记day04——数据类型
- T-SQL 事物 ---记录
- python 中使用 global 引发了莫名其妙的问题
- 网络爬虫遇到问题(一)
- 生产环境下JAVA进程高CPU占用满载故障排查
- H5 px rem 单位换算
- hadoop standalone install
- 使用java命令运行class文件提示“错误:找不到或无法加载主类“的问题分析
- mybatis--插入&更新sql-(采用mysql数据库计算)
- Array 的五种迭代方法 -----every() /filter() /forEach() /map() /some()
- log4j2配置文件详解
- spring整合mybitas中的sql标签使用案例
- 字符串的全排列