CPU过高排查

日常笔记,遇到CPU超过100%时,怎么查看java 项目哪个进程卡住,并且排除内存溢出情况。

1.查看CPU过高的进程:
top
2.查看进程所在线程:
top -H -b -p 18401|head -10
3.由于java栈中显示的pid是16进制的。所以这里需要将十进制转化为16进制:
printf  "%x\n" 18435
4.使用jstack命令查看,将刚才十进制转化为16进制的:4803,使用grep过滤一下
jstack 18401 | grep 4803 -A 30
5.输出日志到dump.out
jstack 18401 > dump.out &

查看日志是可能会遇到以下情况,查看java_pid18401.hprof 使用mt 工具打开:

Unable to open socket file : target process not responding or HotSpot VM not loaded 
The -F option can be used when the target process is not responding 

⚠️ 小工具:

 查看连接数:
netstat -n | zwk '/^tcp/ {++S[$NF]}  END {for(a in S) print a, S[a]} '
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容