Java / JVM CPU 利用率高 - 诊断方法 1 - Thread Dump 结合 OS 诊断
- IBM AIX Java
1. topas 命令定位 CPU 使用高的进程,比如下面 PID 614852
Name PID CPU%
java 614852 23.9
java 450806 20.5
2. 使用命令 ps -mp <PID> -o THREAD 定位 CPU 使用高的线程 TID
比如下显示线程 (TID)11219165 消耗了 22% CPU. 把 11219165 换成 16 进制得到 AB30DD
ps -mp 614852 -o THREAD
USER PID PPID TID S CP PRI SC WCHAN F TT BND COMMAND
wc90 614852 581756 - A 222 60 49 * 242001 - - xxxxxxxxxxxx
- - - 4751559 R 20 95 1 - 400000 - - -
- - - 11219165 R 22 96 0 - 400000 - - -
3. 获得 javacore 文件
通过命令 kill -3 <pid>, 比如 kill -3 614852
硬盘上 Java 工作目录 (一般是启动目录)会产生 javacore.20150507.163756.643532.0004
4. 搜索 TID, 比如 会得到线程的 Stack Trace, 然后可以定位消耗 CPU 的代码
- Java 在 Linux 或者 Solaris
1. 和上面类似,不过使用下面命令得到消耗 CPU 的 进程 以及 里面的线程
ps H -eo user,pid,ppid,tid,time,%cpu,cmd --sort=%cpu
Or
top -H -p <pid>
2. 使用下面命令抓取 进程 thread dump, 然后结合上面的 PID (需要换成 16 进制),在 thread dump 里面搜索就可以找到
Jstack <pid> > jstack.txt
Java / JVM CPU 利用率高 - 诊断方法 1 - Thread Dump 结合 OS 诊断的更多相关文章
- jstack命令定位java程序CPU利用率高的代码位置
高手是怎么使用jstack精确找到异常代码的(java程序CPU利用率高的情况) 请jstack神器来帮忙 本文介绍Linux环境下使用jstack定位问题的秘笈1.[top命令]找到CPU利用率持续 ...
- JAVA 消耗 CPU过高排查方法
#找出cpu占用最高的进程top -H#再次确定进程ps aux|grep 17408 #查看进程的线程(tid) ps -mp 17408 -o THREAD,tid,time#将线程转换为十六进制 ...
- MongoDB优化之三:如何排查MongoDB CPU利用率高的问题
遇到这个问题,99.9999% 的可能性是「用户使用上不合理导致」,本文主要介绍从应用的角度如何排查 MongoDB CPU 利用率高的问题. Step1: 分析数据库正在执行的请求 用户可以通过 M ...
- 【三板斧】Java定位CPU使用高问题
[三板斧]Java定位CPU使用高问题 1.TOP命令,查询消耗CPU高的进程号 PID,并记录下来,按下键盘"H"键,记录高消耗线程号,并将改线程号转换为十六进制 2.使用 js ...
- Java进程CPU使用率高排查
Java进程CPU使用率高排查 生产java应用,CPU使用率一直很高,经常达到100%,通过以下步骤完美解决,分享一下.1.jps 获取Java进程的PID.2.jstack pid >> ...
- 如何按名称或PID查找一个进程?如何按端口号查找一个进程?如何查看一个进程的CPU和内存、文件句柄使用情况?如何查看CPU利用率高的TOP10进程清单?如何根据PID强制终止进程?
如何按名称或PID查找一个进程?如何按端口号查找一个进程?如何查看一个进程的CPU和内存.文件句柄使用情况?如何查看CPU利用率高的TOP10进程清单? 目录 如何按名称或PID查找一个进程?如何按端 ...
- 记一次java应用cpu利用率过高调试经历
1,现象 写的一个storm应用,主要是通过mysql的binlog来同步表到hbase.运行一段时间后发现,经常会出现cpu使用率飙升到200%以上,然后各种消息堆积报警等等出现各种问题 2,调研过 ...
- 服务器CPU又爆了?Linux快速排查Java程序占用CPU很高的方法
这个问题可以说是 Java 面试的高频面试题了,有很多面试官都喜欢问这个问题,问题可能是下面这样的. 线上一台服务器 CPU 使用率100% 了,如果你碰到这样的情况,如何排查并找到问题原因? 1.场 ...
- java进程CPU飙高
因为这段时间一直在弄监控,但是工作还是在进行中 因为机器不多,所以今天早上巡检了一下,看到一台生产机器上的CPU飙高 top
随机推荐
- AreYouBusy
AreYouBusy Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Su ...
- A Simple Problem with Integers
A Simple Problem with Integers Time Limit: 5000MS Memory Limit: 131072K Total Submissions: 77964 Acc ...
- Shredding Company
Shredding Company Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 4653 Accepted: 2675 Des ...
- Number Sequence 分类: HDU 2015-06-19 20:54 10人阅读 评论(0) 收藏
Number Sequence Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Tot ...
- EasyUI 格式化DataGrid列
easyui DataGrid中格式化列,如果单价低于20,则使用定义列formatter为红色文本.格式化DataGrid列,我们应该设置formatter属性,这个属性是一个函数.格式化函数包括两 ...
- IOS杂记
- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event { //Using code from http://stackoverfl ...
- MVC 中使用EF
EF 1)简单查询 后台代码 using MvcApplication18.Models; using System; using System.Collections.Generic; using ...
- fastboot 教程
参考: http://blog.csdn.net/geniusmen/article/details/7892398 http://www.cnblogs.com/eastnapoleon/p/327 ...
- 工欲善其事必先利其器系列之:在VS里面折叠js代码
之前用vs写js的时候经常因为js代码过长而且不能像cs文件里面的方法一样进行折叠而抓狂,直到在扩展库发现了这款插件有了它就可以把代码进行折叠了 插件地址
- .Net六大验证及使用方法
C#包含有六种验证方式,分别为: 一.非空验证 RequiredFieldValidator. 二.对比验证 CompareValidator. 三.范围验证 RangeValidator. 四.正 ...