top命令找到占用CPU最高的java线程
Java  /  管理员 发布于 4年前   813
上次分析系统中占用CPU高的问题,得到一些使用Java自身调试工具的经验,与大家分享。
(1)使用top命令找出占用cpu最高的JAVA进程PID:28174
(2)如下命令找出占用cpu最高的线程
top -Hp 28174 -d 1 -n 132694 root 20 0 3249m 2.0g 11m S 2 6.4 3:31.12 java 28175 root 20 0 3249m 2.0g 11m S 0 6.4 0:00.06 java 28176 root 20 0 3249m 2.0g 11m S 0 6.4 1:40.79 java 28177 root 20 0 3249m 2.0g 11m S 0 6.4 1:41.12 java 28178 root 20 0 3249m 2.0g 11m S 0 6.4 1:41.11 java 28179 root 20 0 3249m 2.0g 11m S 0 6.4 1:41.33 java 28180 root 20 0 3249m 2.0g 11m S 0 6.4 1:41.58 java 28181 root 20 0 3249m 2.0g 11m S 0 6.4 1:40.36 java 28182 root 20 0 3249m 2.0g 11m S 0 6.4 1:41.02 java 28183 root 20 0 3249m 2.0g 11m S 0 6.4 1:40.96 java 28184 root 20 0 3249m 2.0g 11m S 0 6.4 4:38.30 java 28185 root 20 0 3249m 2.0g 11m S 0 6.4 0:00.46 java 28186 root 20 0 3249m 2.0g 11m S 0 6.4 0:01.83 java 28187 root 20 0 3249m 2.0g 11m S 0 6.4 0:00.00 java 28189 root 20 0 3249m 2.0g 11m S 0 6.4 0:00.01 java 28190 root 20 0 3249m 2.0g 11m S 0 6.4 0:49.01 java
(3)打印占CPU最高JAVA进程28174的堆栈信息
/usr/java/jdk1.6.0_21/bin/jstack 28174 > /root/mss/41-100javathreaddump.txt
(4)占CPU最高线程32694换算成16进制到文档中寻找对应线程7fb6
"MSXMLProcessorThread" prio=10 tid=0x00002b469923a800 [color=darkred]nid=0x7fb6[/color] sleeping[0x00002b46b0200000] java.lang.Thread.State: TIMED_WAITING (sleeping) at java.lang.Thread.sleep(Native Method) at com.adventnet.management.xml.MSXmlProcessor.listen(MSXmlProcessor.java:279) at com.adventnet.management.xml.MSXmlProcessor.run(MSXmlProcessor.java:264) at java.lang.Thread.run(Thread.java:619)
以上过程手工进行,虽然不如Jprofiler和java自带的可视化工具那么直观,但是能够解决问题!尤其是在不能使用远程调试工具的时候,能够提供最大的帮助。
123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..路人 在
php中使用hyperf框架调用讯飞星火大模型实现国内版chatgpt功能示例中评论 教程很详细,如果加个前端chatgpt对话页面就完美了..Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号