vlambda博客
学习文章列表

亲测有效!window下tomcat cpu100%排查!

    

    前段时间解决了sqlserver数据库cpu飙升的情况,就在前几天,tomcat 的cpu有100%了,wtf!一般高手看到这就说,top, ps aux | grep PID或ps -ef |grep PID,ps -mp PID -o THREAD,tid,time等等一顿骚操作就完事了,但是我要告诉你的是,服务器是windows server 2016!怎么样,蒙了吧,不知道咋办了吧~


    今天就来介绍下,window环境下排查tomcat cpu占用100%的操作~建议收藏!


    工欲善其事必先利其器,首先我们需要一个工具(当然还有其他方法, 目前介绍我亲测有效的),processExplorer,网上直接下载就行,我就不提供了~


    接下来就开始了,首先第一步,就是打开任务管理器,在详细信息里面,找到tomcat的pid。

    亲测有效!window下tomcat cpu100%排查!

    第二步,打开cmd窗口,输入jstack -l pid> c:/java.stack。

    这里需要把pid换成之前在任务管理器里面找到的tomcat的pid。


    打开我们事先准备得processExplorer,根据你电脑的位数打开相应位数的exe文件,在软件中找到tomcat。

亲测有效!window下tomcat cpu100%排查!

    

    双击打开,点击cpu,根据cpu排序

亲测有效!window下tomcat cpu100%排查!

    将占用过高的pid换算成16进制,window自带的程序员计算机即可运算。

    根据该tid去log文件中查找,就能找到该线程所对应的java代码。由于,刚才导出的log文件中,存储的线程id是1 6进制的,而我们在Process Explorer中看到的是10进制的tid,所以,我们需要将t进制转换成16进制。以tid=12352的线程为例,转换成十六进制后为3040。打开刚才的之前cmd命令生成的文件,c:/java.stack,查找3040 (0x3040)

亲测有效!window下tomcat cpu100%排查!


    知道在哪了就去代码里面收拾它吧!



end


人生嘛,随便聊聊

影视嘛,直接回复片名,获取免费观看地址

如地址失效或搜索不到,请添加“留仙一码农”

    

推荐阅读

• 

• 

• 

• 

如有收获,点个在看,诚挚感谢 明天见(。・ω・。)ノ♡