针对java项目高CPU和高内存使用jstack命令来查找错误代码所在
来源:互联网 发布:怎么设计淘宝店标 编辑:程序博客网 时间:2024/06/07 02:13
本文从百度经验转载,记录下。
维护服务器时,会出现java进程在CPU、内存、硬盘上总是出现异常情况。
如何找到是哪些代码出现这些异常呢?
本文使用jstack来实现这个需求
工具/原料
- java
- jstack
- ProcessExplorer
- procexp
方法/步骤
先写一段代码来模拟一个耗CPU的线程
代码:
package chapter1;
public class FindJavaThreadInTaskManager {
public static void main(String[] args) {
Thread thread = new Thread(new Worker());
thread.start();
}
static class Worker implements Runnable {
@Override
public void run() {
while (true) {
System.out.println("Thread Name:" + Thread.currentThread().getName());
}
}
}
}
执行上述代码,
模拟一个CPU和IO利用率都高线程
打开任务管理,
此例中,CPU利用率比较高java进程ID为7064
使用ProcessExplorer找到ID号为7064的进程
使用ProcessExplorer查看进程ID为7064的属性信息
在Thread标签找到CPU利用率的线程信息,TID为6120(10进制)
将CPU利用率高的线程ID 6120(10进制)
转换为0x17E8(16进制)
使用jstack查看进程7064的线程信息。
找到线程号为0x17E8的线程
命令:
jstack -l 7064
查看第13行的代码信息,与实际情况相符。
至此,找到引发CPU利用率高的代码
- 针对java项目高CPU和高内存使用jstack命令来查找错误代码所在
- 利用jstack命令定位占用cpu高的java线程及具体错误代码信息
- java高分局之jstack命令使用
- linux下采用ps、jstack命令排查命中java应用中占用CPU高的代码
- linux下采用ps、jstack命令排查命中java应用中占用CPU高的代码
- jstack:分析linux下java程序占用CPU高
- jstack: Java占用高CPU分析之- GC Task Thread
- jstack: Java占用高CPU分析之- C2 Compiler Thread
- Jstack分析CPU占用高问题
- java web tomcat项目高CUP和内存占用率
- Linux系统监控命令个人总结之jstack查找高度占用CPU的java代码
- Java定位CPU使用高问题
- Java定位CPU使用高问题
- Java 高CPU占用
- java程序高cpu占用,内存过高问题
- Linux 内存和CPU占用高的程序
- 使用perfanal和hprof分析java进程性能 java CPU高 java性能调优
- 使用top和jstack查找线程错误
- 梳理caffe代码layer(五)
- hdu5833 Zhu and 772002 (高斯消元的简单应用)
- C语言基本教程 第3课: C程序基本概念
- React-Native 打造的一个微型云翻译软件--(云翻译)
- Java Map按Value排序
- 针对java项目高CPU和高内存使用jstack命令来查找错误代码所在
- 安卓二维码扫描时出现图片拉伸
- https站点调用百度地图api
- Fuschia 是什么样的一个操作系统
- mac下 svn 提交@2x图片报错解决方法
- BZOJ4580 [Usaco2016 Open]248
- Distributional Vector VS. Distributed Vector
- linux下全目录全文搜索强大工具grep
- 使用webpack打包ES6代码