栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java的cpu使用过高异常排查

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java的cpu使用过高异常排查

输入 sudo -u sankuai -i

输入top 查看cpu使用情况

找到比较高的cpu,拿到对应的进程id (比如这里的java cpu 已经1134%) 『我这里是拿终端尝试的,和美团软件是一样的』

搜索java 进程 里面的线程

top -Hp 14980

查询出来几个cpu比较高的线程

将线程转换成16进制(必须要转)

printf “%xn” tid (tid=线程id)

获得到对应的16进制的线程id后,查看对应的线程堆栈信息

jstack pid | grep tid 「pid 进程id,tid是16进制后的线程id」

找到对应的问题

问题解决:

1.有时间线程id的堆栈信息是查看不了的,因为捕捉不到对应的线程id,会报如下的错误(这个时候你可以仔细去看,对应线程id一直在换,一会你要找的那个线程id就找不到了)

error: -F to force a thread dump. Use when jstack does not respond (process is hung)

这个时候我们可以直接查看java进程的堆栈信息

jstack pid

还可以将堆栈信息打印成一个文件(-l 可以不加)

jstack -l pid > 文件名字

使用cat 命令 或者 less命令进行查看(less 命令 可以模糊查询 「输入/ 然后输入要查找的单词就可以」)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/712906.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号