java 项目cpu飙升故障排查
cpu飙升居高不下,这种事情虽然很少,可能在一家公司待一年也不会发生一次。
但是这种故障一旦发生了,可能就很严重。
那么当我们某个Java项目占比很高了,怎么定位到代码?
一、top
看一下大概情况,看看谁占的最高,会显示每个进程和具体的cpu占比,我这里显示的是正常情况,特殊情况下,cpu可能飙升到100%,200%
如果你想知道这个进程对应的应用信息,可以
ps -17464
这个命令可以显示进程对应的服务名,jar包,路径,还有内存配置等信息。
二、假如现在上面pid为17464的进程占的很高,达到了200%了。这时候,我们要看一下这个进程的线程情况。因为进程cpu过高,还是因为它里面的线程cpu过高。这里面可能是由一个线程导致,也有可能由多个线程共同导致的。比如说,一个进程总的cpu达到200%了,可能是由三个子线程分别占用60%多的比例。
top -p 17464 -H
-H表示看线程信息,注意这里虽然列名还是"pid",但实际上已经是表示线程的id,就是17464这个进程下所有的线程信息,cpu占比也在其列。
z
三、假如就是上面17614的线程占用了绝大部分cpu,虽然实际上可能有多个线程同时是高占用内存,我们这里假设就它一个。找到这个线程之后,就是要看它的堆栈信息,这是寻找问题根源的关键。
首先将转换成线程id转成16进制,得到44ce
[root@VM-0-15-centos ~]# printf "%x\n" 17614
44ce
四、查看该进程下该线程的堆栈信息。
1、先将堆栈信息写入到文件中
jstack 17464> thread_stack.log
2、然后在文件中查找根据线程0x44ce去找日志就可以了
备注:一般情况我们会执行jstack 17464 | grep 44ce去查看堆栈信息,但是有时候会报错,提示:
18626: Unable to open socket file: target process not responding or HotSpot VM not loaded
具体原因后面再看
java 项目cpu飙升故障排查相关推荐
- Java线上应用故障排查之一:高内存占用
Java线上应用故障排查之一:高内存占用 转载地址:http://www.blogjava.net/hankchen 搞Java开发的,经常会碰到下面两种异常: 1.java.lang.OutOfMe ...
- windows服务器java项目cpu占用较高原因分析
前言 在windows平台上要找出到底是哪个线程占用的cpu还不那么容易,linux用top就简单多了最后的解决方法: 1.找到java进程对应的pid. 找pid的方法是:打开任务管理器,然后点击 ...
- Java程序CPU飙升排查,找出死循环代码
windows环境下cpu飙升问题 线上某台runtime机器(windows Server)cpu报警,这种情况初步就是代码里面死循环了,先把机器下线了保证不再有新的任务分配进来,然而cpu使用依然 ...
- 线上服务导致cpu飙升问题排查
一.故障说明 昨晚突然收到线上服务器cpu报警,登录监控平台看了下发现cpu瞬间飙升到60%.第一反应就是使用top命令去查看,发现是一个java进程.于是立刻使用jps -l命令定位到该java进程 ...
- Java进程CPU使用率高排查
1.使用top 定位到占用CPU高的进程PID top 通过ps aux | grep PID命令 2.获取线程信息,并找到占用CPU高的线程 ps -mp pid -o THREAD,tid,tim ...
- 全面Java程序线上故障排查
文章内容过长,望读者见谅,小编在文末准备了彩蛋 目录 这篇文章是在公司做了不少的线上Java服务故障排查和优化之后的一个总结,可以作为一个工具清单,在分析问题的时候需要有整体思路:全局观,先从系统层面 ...
- Java线上应用故障排查之二:高内存占用
前一篇介绍了线上应用故障排查之一:高CPU占用,这篇主要分析高内存占用故障的排查. 搞Java开发的,经常会碰到下面两种异常: 1.java.lang.OutOfMemoryError: PermGe ...
- 生产环境下JAVA进程高CPU占用故障排查
感谢原作者 http://blog.chinaunix.net/uid-10449864-id-3463151.html 问题描述: 生产环境下的某台tomcat7服务器,在刚发布时的时候一切都很正常 ...
- Java线上应用故障排查之一:高CPU占用
一个应用占用CPU很高,除了确实是计算密集型应用之外,通常原因都是出现了死循环. (友情提示:本博文章欢迎转载,但请注明出处:hankchen,http://www.blogjava.net/hank ...
- java应用挂死故障排查
现象: java开发的web应用无法访问 排查: 1.从resin/log/watchdog-manager.log的日志里可以看出来,jvm的内存满,无法创建新进程 java.lang.OutOfM ...
最新文章
- 重磅!中科院白洋研究员加入《宏微名师讲堂》分享高通量分菌技术啦!
- flex 客户端缓存SharedObject
- 查看php-fpm 占用内存情况
- java 将Map拷贝到另一个Map对象当中
- java createjpeg4_在linux下用java的JPEGCodec.createJPEGEncoder(bos)生成jpg图片问题
- nuxt route 全局管理 route.beforeEach 替代
- python-运算符-比较运算符
- android usb存储固定,如何在Android 10中设置默认USB行为
- 关于NSArray使用时用strong修饰还是copy修饰问题测试
- Centos6.5 恢复误删的系统面板
- 三菱PLC与上位机通讯协议讲解
- 《金字塔原理》读书笔记(全)
- 基于stm32智能门锁系统
- 国科大计算机算法与分析——陈玉福 马菲菲
- vmware虚拟机共享文件夹设置(xp)
- python英文词频统计软件_英语词频统计软件功能介绍
- java注释/关键字/标识符/常量/
- 浙江师范大学计算机复试考什么,浙江师范大学考研难吗?一般要什么水平才可以进入?...
- 在Ubuntu5.1中安装NVIDIA TNT2 M64老式显卡驱动程序..
- 联想服务器出现系统恢复选项,Win10更新系统后开机提示自动修复的常规解决方案...