服务器分析jvm运行情况的命令

一.简述

1.jstack命令

能得到运行java程序的java stack和native stack的信息。可以轻松得知当前线程的运行情况。

2.jmap命令

得到运行java程序的内存分配的详细情况。例如实例个数,大小等。尤其是这个命令可以导出一份binary heap dump的bin文件,这个文件能够直接用Eclipse Memory Anayliser来分析,并找出潜在的内存泄漏的地方。

3.jstat命令

是一个比较实用的一个命令,可以观察到classloader,compiler,gc相关信息。可以时时监控资源和性能

  • 额外参考
  • https://www.javatang.com/archives/2017/10/19/33151873.html
  • https://jsczxy2.iteye.com/blog/781148
  • https://blog.csdn.net/f13437948032/article/details/54913191/
  • https://www.thea.cn/xlinux_zl_798911-1.htm
  • https://guafei.iteye.com/blog/1815222

二.jstack命令

1.执行命令:top

讲解:

  • 输入top命令后按一下大写的P按cpu占用率排序
  • 输入top命令后按数字1,查看的cpu的核数为几核
  • top命令显示的是你的程序占用的cpu的总数,也就是说如果你是4核cpu那么cpu最高占用率可达400%,top里显示的是把所有使用率加起来

服务器分析jvm运行情况的命令_第1张图片
看到Tasks代表当前展示的是进程信息;得到占用cpu最高的进程PID为:15920

2.执行命令:jstack 进程PID > quanran_dump

eg: jstack 15920 > quanran_dump

  • 讲解:这是将当前进程的栈运行情况写进文件,此文件保存在当前你执行命令的目录

3.可以执行以下三个命令得到进程PID 15920里的所有线程资源占用情况,进而得到线程的TID

3.1:执行命令:top -Hp 进程PID

eg: top -Hp 15920
服务器分析jvm运行情况的命令_第2张图片
看到Threads代表当前展示的是线程信息;此处CPU占用率最高的是29%,它的线程TID就是PID列展示的值:15941。

3.2:执行命令:ps -mp 进程PID -o THREAD,tid,time

eg: ps -mp 15920 -o THREAD,tid,time

服务器分析jvm运行情况的命令_第3张图片
此处CPU占用率最高的是12.2%,它的线程TID是:15941。

3.3:在top命令里按shift+h

eg: 先执行命令top,看到展示的进程信息后,在按shift+h,会弹出3.1命令的线程展示图,在按shift+h又回切回进程展示图。
其中看到的线程展示图结果:此处CPU占用率最高的是12.2%,它的线程TID是:15941。

4:执行命令:printf “%x\n” 线程tid , 得到16进制线程pid。

eg:printf “%x\n” 15941 -> 得到16进制线程pid: 3e45
在这里插入图片描述

5:执行命令:vim quanran_dump 或 less -m quanran_dump

eg:打开quanran_dump文件后,搜索3e45关键字,看3e45关键字所在行的后面的行,判断是什么问题导致的cpu占用率过高。

三.jmap命令

  • https://www.jianshu.com/p/91ee6476848c
  • https://blog.csdn.net/q13554515812/article/details/89713382
  • https://www.hollischuang.com/archives/303

四.jstat命令

  • https://blog.csdn.net/zlzlei/article/details/46471627
  • https://blog.csdn.net/zlzlei/article/details/46471627
  • https://www.xttblog.com/?p=3175
  • https://blog.csdn.net/zhaozheng7758/article/details/8623549
  • https://my.oschina.net/u/2338362/blog/408560

五.一些现成的案例分析

  • https://www.jianshu.com/p/3667157d63bb

你可能感兴趣的:(linux)