文章正文

Java线程及Jvm监控工具

【文章】2020-04-23

简介Java线程及Jvm监控工具

Java线程状态

线程的五种状态

* 新建:new(时间很短)

* 运行:runnable

* 等待:waitting(无限期等待),timed waitting(限期等待)

* 阻塞:blocked

* 结束:terminated(时间很短)

image.png

Jvm监控工具

一、jstack

介绍:

jstack用于打印出给定的java进程ID或core file或远程调试服务的Java堆栈信息。
如果是在64位机器上,需要指定选项"-J-d64",Windows的jstack使用方式只支持以下的这种方式:jstack [-l] pid
如果java程序崩溃生成core文件,jstack工具可以用来获得core文件的java stack和native stack的信息,从而可以轻松地知道java程序是如何崩溃和在程序何处发生问题。
另外,jstack工具还可以附属到正在运行的java程序中,看到当时运行的java程序的java stack和native stack的信息, 如果现在运行的java程序呈现hung的状态,jstack是非常有用的。

使用:

1、查看运行程序的进程号

image.png

2、jstack dump当前线程状态

image.png

3、根据当前抓取到的信息进行进一步的分析


二、jvisualvm

jdk自带有个jvisualvm工具、该工具是用来监控java运行程序的cpu、内存、线程等的使用情况。并且使用图表的方式监控java程序、还具有远程监控能力。

tomcat 配置 jvm 启动参数。 在 tomcat 的 catalina.sh 中添加如下参数:

JAVA_OPTS="-Djava.rmi.server.hostname=192.168.0.216 -Dcom.sun.management.jmxremote.port=1100 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"注:
-Dcom.sun.management.jmxremote.port :1100 这个是配置远程 connection 的端口号的,要确定这个端口没有被占用
-Dcom.sun.management.jmxremote.ssl=false   指定了 JMX 是否启用 ssl
-Dcom.sun.management.jmxremote.authenticate=false   指定了JMX 是否启用鉴权(需要用户名,密码鉴权)
前面是固定配置,是 JMX 的远程服务权限的
-Djava.rmi.server.hostname :这个是配置 server 的 IP 的


jvisualvm使用

1、windows键+R键 输入jvisualvm回车

2、右键远程添加远程主机

image.png

 

3、在 主机ip 上右键添加jmv连接

image.png

 

4、输入远程连接的端口号点击确定

image.png

5、双击192.168.1.101:10086,打开如下图所示的界面

image.png

 

6、进入jvisualvm时时查看程序运行状态(略)

注释:在测试环境中有可能没有权限在服务器上添加需要远程连接的配置,这样只能使用jstack

打赏支持

感谢您的支持,我会继续努力的!

打开微信扫码打赏,你说多少就多少

找书费时,联系客服快速查找!

扫码支持

在线客服8:30-23:00,若离线请留言!

获取教程,请联系在线客服!

扫码支持

在线客服8:30-23:00,若离线请留言!

找PDF电子书,太费时间?

  • 微信扫描二维码,让客服快速查找。
  • 在线客服8:30-23:00,若离线请留言!