成都项目网站建设,简述电子商务网站的建设流程图,网站建设推介,常德论坛网1、通过top或者jps命令查到是那个java进程#xff0c; top可以看全局那个进程耗cpu#xff0c;而jps则默认是java最耗cpu的#xff0c;比如找到进程是196 1.1 top (推荐)或者jps命令均可 2、根据第一步获取的进程号#xff0c;查询进程里那个线程最占用cpu#xff0c;发…1、通过top或者jps命令查到是那个java进程 top可以看全局那个进程耗cpu而jps则默认是java最耗cpu的比如找到进程是196 1.1 top (推荐)或者jps命令均可 2、根据第一步获取的进程号查询进程里那个线程最占用cpu发现590消耗最多 top -p 196 -H 3、把堆栈信息dump到本地存储 jstack 196 ~/jstack.log 4、查询jstack.log相关的 pid为 715 的值可以查看堆栈信息找到具体的业务代码
5、发现196进程里的线程id715是最耗cpu的可以使用linux命令直接kill掉杀死线程命令是 两个 -- kill --715 下面代码可以考虑不看 6、需要注意的是在jsatck命令展示的结果中线程id都转换成了十六进制形式。可以用如下命令查看转换结果也可以找一个科学计算器进行转换。主要查看NID的值jdk8是16进制jdk21是10进制
把590的转换成十六进制 printf %x 590
或者
转换线程号printf %x 38查询堆栈jstack 16| grep nid0x26 -A 10 7、 24e 代表线程的信息可以24e的值把jstack 196 jstack.log 导出的文件查找相应的线程信息。 目前发现590也能搜到数据而24e搜不到数据。 所以 45可能是错误的。参考文档 https://www.bilibili.com/video/BV15T4y1y7eH/?spm_id_from333.337.search-card.all.clickvd_source7d7f4a21d00a9323f6fdc67c7ae8e0f2 面试官生产环境碰到系统CPU飙高和频繁GC你要怎么排查 白天不懂夜的黑_生产环境如何查看gc-CSDN博客