Windows如何使用jstack跟踪异常代码
维护服务器时,会出现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

- 8
查看第13行的代码信息,与实际情况相符。
至此,找到引发CPU利用率高的代码

Windows如何使用jstack跟踪异常代码的更多相关文章
- 利用jstack 找到异常代码
1.top找出耗时pid进程或ps -ef |grep xxx 找出pid 2.ps p 3036 -L -o pcpu,pid,tid,time,tname,cmd 3036为pid 3.prin ...
- WPF中实例化Com组件,调用组件的方法时报System.Windows.Forms.AxHost+InvalidActiveXStateException的异常
WPF中实例化Com组件,调用组件的方法时报System.Windows.Forms.AxHost+InvalidActiveXStateException的异常 在wpf中封装Com组件时,调用组件 ...
- 使用Dottrace跟踪.net代码执行时间
当程序遇到性能问题,如IIs请求反应缓慢,.net客户端程序执行缓慢,如何分析是哪里出了问题?dottrace可以帮助.net程序跟踪出代码里每个方法的执行时间,清晰的看出是哪里执行时间过长,然后再分 ...
- Unrecognized Windows Sockets error: 0: JVM_Bind 异常怎么办
Unrecognized Windows Sockets error: 0: JVM_Bind 异常解决办法 java.net.SocketException: Unrecognized Window ...
- 让你的Windows不断重启的C语言代码
原文:让你的Windows不断重启的C语言代码 没有写Linux的原因是因为搞不定Linux下的权限问题,而Windows下基本上使用电脑的用户都是管理员,所以钻个空了,不多说下面是代码#includ ...
- java-IO流-字节流-概述及分类、FileInputStream、FileOutputStream、available()方法、定义小数组、BufferedInputStream、BufferedOutputStream、flush和close方法的区别、流的标准处理异常代码
1.IO流概述及其分类 * 1.概念 * IO流用来处理设备之间的数据传输 * Java对数据的操作是通过流的方式 * Java用于操作流的类都在IO包中 * ...
- Windows 窗体设计器生成的代码
namespace 窗体的浮动及隐藏{ partial class Form1 { /// <summary> /// 必需的设计器变量. ...
- Android调用JNI本地方法跟踪目标代码
正如Android调用JNI本地方法经过有点改变章所说跟踪代码是可行的,但是跟踪某些代码会出现anr,点击取消,还是不好运,有提高办法吗?回答是有(gdb还没试过,本文只讨论ida). 下面是我使用 ...
- windows server 2008 如何查看异常重启日志
下面蓝队网络为大家介绍下windows server 2008 如何查看异常重启日志 开始->管理工具->时间查看器 windows日志->系统 筛选当前日志 选择Kernel-Po ...
随机推荐
- python zip()
>>> help(zip) Help on built-in function zip in module __builtin__: zip(...) zip(seq1 [, seq ...
- JPA mysql wildfly jboss 存储时乱码
首先确保mysql的库,表创建时指定的字符集collation. 可以直接用命令行插入中文,看查询出来是不是中文. insert into live_main_sync (cn_name, creat ...
- 王高利:Linux__apache,安装,报错解决
今日编译apache时出错:#./configure --prefix--检查编辑环境时出现:checking for APR... noconfigure: error: APR not found ...
- 各种编码UNICODE、UTF-8、ASCII学习笔记
本文转自csdn博客:http://www.ruanyifeng.com/blog/2007/10/ascii_unicode_and_utf-8.html ,感谢作者的分享 作者: 阮一峰 日期: ...
- lua 闭包
--匿名函数使用upvalue i保存他的计数, 闭包是一个函数加上它可以正确访问的upvalues function newCounter() return function() i = i + r ...
- TextBox的值是否为数字
<asp:TextBox ID="t" Width="70" runat="server" style="ime-mode: ...
- 自然语言16.1_Python自然语言处理学习笔记之信息提取步骤&分块(chunking)
QQ:231469242 欢迎喜欢nltk朋友交流 http://www.cnblogs.com/undercurrent/p/4754944.html 一.信息提取模型 信息提取的步骤共分为五步,原 ...
- C# C++联调
http://jingyan.baidu.com/article/fcb5aff7926344edab4a714d.html
- Windows Platform Predefined Macros
https://msdn.microsoft.com/en-us/library/b0084kay.aspx
- ecshop 订单-》订单状态 2
// 判断订单状态 public function get_order_status($os,$ps,$ss){ $arr = array('已取消','待付款','待发货','待收货','确认收货' ...