Windows下Tomcat内存占用过高问题跟踪(ProcessExplorer+jstack)
2023-12-28 19:34:55
一、问题描述
Tomcat下面部署很多个java项目的war包,tomcat启动一段时间后,发现cpu占用过高,整个界面卡死!
二、通过process explorer查看java进程下的线程
process explorer是Windows系统和应用程序监视工具。
process explorer下载:Process Explorer - Sysinternals | Microsoft Learn?
下载后直接打开即可:
使用PID为3764的进程,点开javaw.exe进程:
这时候会发现TID为4060(10进制)的线程占用CPU最高,下面找到该进程在项目中的位置。
三、通过jstack把进程下所以的Java线程栈的内容打印出文本中
jstack是java虚拟机自带的一种堆栈跟踪工具,用于生成虚拟机当前时刻的线程快照,包含虚拟机中每一个线程正在执行的方法堆栈的集合,用于定位线程出现长时间停顿的原因,如死锁、死循环、外部资源长时间等待等
在cmd命令里输入:jstack -l 3764 回车:
将4060(TID)十进制转成16进制(在线工具:http://tool.oschina.net/hexconvert/)为fdc;
找到nid=0xfdc,找到后面对应的java类对应的行数,即可定位到问题。
?
?
文章来源:https://blog.csdn.net/ok060/article/details/135276186
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!