养生 装修 购物 美食 感冒 便秘 营销 加盟 小吃 火锅 管理 创业 搭配 减肥 培训 旅游

Windows如何使用jstack跟踪异常代码

时间:2024-11-01 03:26:08

维护服务器张虢咆噘时,会出现java进程在CPU、内存、硬盘上总是出现异常情况。如何找到是哪些代码出现这些异常呢?本文使用jstack来实现这个需求

工具/原料

java

jstack

ProcessExplorer

procexp

方法/步骤

1、先写一段代码来模拟一个耗CPU的线程代码:pack瞢铍库祢agechapter1;publicclass惺绅寨瞀FindJavaThreadInTaskManager{publicstaticvoidmain(String[]args){Threadthread=newThread(newWorker());thread.start();}staticclassWorkerimplementsRunnable{@Overridepublicvoidrun(){while(true){System.out.println("ThreadName:"+Thread.currentThread().getName());}}}}

Windows如何使用jstack跟踪异常代码

2、执行上述代码,模拟一个CPU和IO利用率都高线程

Windows如何使用jstack跟踪异常代码

3、打开任务管理,此例中,CPU利用率比较高java进程ID为7064

Windows如何使用jstack跟踪异常代码

4、使用ProcessExplorer找到ID号为7064的进程

Windows如何使用jstack跟踪异常代码

5、使用ProcessExplorer查看进程ID为7064的属性信息在Thread标签找到CPU利腩柽鬣盛用率的线程信息,TID为6120(10进制)

Windows如何使用jstack跟踪异常代码

Windows如何使用jstack跟踪异常代码

6、将CPU利用率高的线程ID6120(10进制)转换为0x17E8(16进制)

Windows如何使用jstack跟踪异常代码

Windows如何使用jstack跟踪异常代码

7、使用jstack查看进程7064的线程信息。找到线程号为0x17E8的线程命令:jstack-l7064

Windows如何使用jstack跟踪异常代码

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

Windows如何使用jstack跟踪异常代码

© 一点知识