返回

Windows下Tomcat内存占用过高问题跟踪(ProcessExplorer+jstack)

发布时间:2022-11-03 14:16:32 335
# java# java# 信息# 工具

一、问题描述

  Tomcat下面部署很多个java项目的war包,tomcat启动一段时间后,发现cpu占用过高,整个界面卡死!

二、通过process explorer查看java进程下的线程

process explorer是Windows系统和应用程序监视工具。

process explorer下载:​​Process Explorer - Windows Sysinternals | Microsoft Docs​​ 

下载后直接打开即可:

Windows下Tomcat内存占用过高问题跟踪(ProcessExplorer+jstack)_tomcat

使用PID为3764的进程,点开javaw.exe进程:

Windows下Tomcat内存占用过高问题跟踪(ProcessExplorer+jstack)_堆栈_02

这时候会发现TID为4060(10进制)的线程占用CPU最高,下面找到该进程在项目中的位置。

三、通过jstack把进程下所以的Java线程栈的内容打印出文本中

jstack是java虚拟机自带的一种堆栈跟踪工具,用于生成虚拟机当前时刻的线程快照,包含虚拟机中每一个线程正在执行的方法堆栈的集合,用于定位线程出现长时间停顿的原因,如死锁、死循环、外部资源长时间等待等

在cmd命令里输入:jstack 4744 > .jvm24.log 回车输出堆栈信息到日志文件:

将4060(TID)十进制转成16进制(在线工具为fdc;

找到nid=0xfdc,找到后面对应的java类对应的行数,即可定位到问题。

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像
精选文章
thumb 中国研究员首次曝光美国国安局顶级后门—“方程式组织”
thumb 俄乌线上战争,网络攻击弥漫着数字硝烟
thumb 从网络安全角度了解俄罗斯入侵乌克兰的相关事件时间线