Linux排查Java程序CPU占用问题

首先第一步通过top指令检查cpu占用情况

在执行top指令后按【1】可以打开cpu列表,【shift+p】可以按照cpu排序

可以看到我们的Java进程id是2689

第二部通过指令获取Java进程下的线程信息

top -H -p 2689

第三步我们以2690为例通过命令转换为十六进制

printf %x 2690

第四步通过命令查询相关信息

jstack 2689 |grep -a a82

这样如果你的代码有问题的话就会打印出相关问题信息

 

在网上看到另外一种使用jstack的方法,不过还没有验证过,这里先记录一下

ps -ef|grep java

 通过cd命令进入到bin下,通过命令jstack <pid>查看信息

cd /usr/local/jdk6/jre/bin/
jstack 2689

 当没有信息的时候可以添加参数强制打印

jstack -l -F 2689

参数:

-F   当’jstack [-l] pid’没有相应的时候强制打印栈信息

-l   长列表. 打印关于锁的附加信息,例如属于java.util.concurrent的ownable synchronizers列表.

-m 打印java和native c/c++框架的所有栈信息.

 

 

还有另外一种方式就是通过strace指令来获取相关信息

strace -p 2690

这个还没学习,以后有机会继续更新

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值