Linux系统下查看JVM进程信息

最近在调试公司的CS改造程序,发现当客户端运行一段时间后会造成CPU占用率过高卡死的现象。因为某些原因我发到现场亲自调试。就顺便学习一下Linux下怎么抓取JVM中某一线程的运行情况。

  1. 查看java进程的pid。(定位目标)
  2. 使用jmap查看JVM heap dump信息。(初步判断JVM资源使用情况)
  3. 通过top命令查看进程CPU使用情况 。
  4. 通过top名称查看进程的线程id
  5. 通过jstack来查看对应线程情况。

一步一步来看:

1.使用jps查看java的进程ID(我预先跑了一个jar包程序)

进程ID为31300
在这里插入图片描述

2. 使用 jmap -dump:live,file=b.map pid 生成javaa堆存储快照。

在这里插入图片描述

使用 jmap -heap PID 生成java堆的详细信息、使用 jmap -histo PID 生成java堆中对象的相关信息,包含数量以及占用的空间大小

在这里插入图片描述
对象信息太多就不展示了。

3.使用top命令来查看cup使用情况

在这里插入图片描述

然后使用top -p PID -H 来把我们关心的进程的线程摘出来

在这里插入图片描述

4.最后使用jstack命令来查看我们的线程情况。
上一步我们使用top命令查看到的进程pid要转化成16进制的,然后使用jstack pid|grep 16进制的线程id 来查看 我们关注的线程的信息。

我这里查看31312的线程信息 转化成16位为7a50
在这里插入图片描述
这就是线程的信息。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值