java线程监控

在Linux中我们要实现监控java线程该如何实现,主要有以下几种 方式

方式1:JVisualvm

这是一个图形化的工具,监控之前先对JVM加监控的参数。

1、进入到tomcat---bin目录中,找到catalina.sh文件,在第二行添加如下参数:

JAVA_OPTS="-Dcom.sun.management.jmxremote.port=10086 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=192.168.75.129"

以上红色字体需要自行修改,其中:

10086为端口号;

192.168.75.129为IP

2、重启tomcat

3、在电脑到命令行窗口中输入:JVisualvm进行打开Java VisualVM

 

 4、选择远程右键添加一个远程本机

 

在主机名中输入之前配置到IP后点击确定

 

 

 

 

5、右键选择添加到远程本机,选择JMX连接,在连接后面输入之前配置到端口号,点击确定按钮

 

 6、双击添加到JVM连接后选择线程则可以看到效果

 

方式2:Jstack 工具

Jstack是一个命令行工具,只需要在后面跟上一个pid就可以了

运行之后主要的输出长这个样子

 

 拿下面这个作下说明:

"RMI Scheduler(0)" #41 daemon prio=5 os_prio=0 tid=0x00007fad84018800 nid=0x9e83 waiting on condition [0x00007fad9916c000]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x00000000f5f2d6f8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1081)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:809)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)

其中:

RMI Scheduler(0):这是线程的名称

prio=5:线程的优先级,默认是5,数字越大,优先级越高

tid=0x00007fad84018800:这是JVM线程的ID,首先明白的是Java线程是在JVM中运行的,tid是JVM内部线程的唯一标志

nid=0x9e83 :这是对应系统的线程ID,和top命令查看的的线程pid对应,不过一个是10进制,一个是16进制。(通过命令:top -H -p pid,可以查看该进程的所有线程信息)

java.lang.Thread.State: WAITING (parking):这个代表的是线程的状态为WAITING

at后面的蓝色字体则表示线程的一个调用链路,是从上到下看的

 

posted @ 2021-03-25 12:33  大渝  阅读(971)  评论(0编辑  收藏  举报