查看jvm线程日志

本文介绍了如何通过`netstat`命令找到指定端口对应的进程ID,然后利用`jstack`工具查看该进程的JVM线程日志。通过`jstack 10303 > 111.log`可以将线程状态输出到111.log文件中,特别适合分析线程阻塞和GC超时问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这个命令能看到端口对应的pid sudo netstat -lunpt | grep 8080 

查看线程日志
./jstack 10303 即可  如果想把 内容打印到 文本里 即 ./jstack pid >111.log  打印 到 111.log文件 中

2018-12-25 10:30:32
Full thread dump Java HotSpot(TM) 64-Bit Server VM (16.0-b13 mixed mode):

"Attach Listener" daemon prio=10 tid=0x00007fda50001800 nid=0x6fd6 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"resin-214" daemon prio=10 tid=0x00007fda3805d000 nid=0x6d9c waiting on condition [0x00007fd979cdb000]
   java.lang.Thread.State: WAITING (parking)
	at sun.misc.Unsafe.park(Native Method)
	at java.util.concurrent.locks.LockSupport.park(LockSupport.java:283)
	at com.caucho.env.thread2.ResinThread2.park(ResinThread2.java:196)
	at com.caucho.env.thread2.ResinThread2.runTasks(ResinThread2.java:147)
	at com.caucho.env.thread2.ResinThread2.run(ResinThread2.java:118)
"resin-port-80-183" daemon prio=10 tid=0x00007fda38041000 nid=0x6968 runnable [0x00007fd97aceb000]
   java.lang.Thread.State: RUNNABLE
	at com.caucho.vfs.JniSocketImpl.nativeAccept(Native Method)
	at com.caucho.vfs.JniSocketImpl.accept(JniSocketImpl.java:150)
	- locked <0x00007fdcb73e0a18> (a java.lang.Object)
	at com.caucho.vfs.JniServerSocketImpl.accept(JniServerSocketImpl.java:267)
	at com.caucho.network.listen.TcpPort.accept(TcpPort.java:1373)
	at com.caucho.network.listen.TcpSocketLink.accept(TcpSocketLink.java:1020)
	at com.caucho.network.listen.TcpSocketLink.handleAcceptTaskImpl(TcpSocketLink.java:970)
	at com.caucho.network.listen.ConnectionTask.runThread(ConnectionTask.java:117)
	at com.caucho.network.listen.ConnectionTask.run(ConnectionTask.java:93)
	at com.caucho.network.listen.SocketLinkThreadLauncher.handleTasks(SocketLinkThreadLauncher.java:169)
	at com.caucho.network.listen.TcpSocketAcceptThread.run(TcpSocketAcceptThread.java:61)
	at com.caucho.env.thread2.ResinThread2.runTasks(ResinThread2.java:173)
	at com.caucho.env.thread2.ResinThread2.run(ResinThread2.java:118)
"com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#1" daemon prio=10 tid=0x00007fda0c188000 nid=0x6964 in Object.wait() [0x00007fd97b0ef000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x00007fdcb6c89320> (a com.mchange.v2.async.ThreadPoolAsynchronousRunner)
	at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:534)
	- locked <0x00007fdcb6c89320> (a com.mchange.v2.async.ThreadPoolAsynchronousRunner)
"VM Thread" prio=10 tid=0x00007fdccc06b000 nid=0x684a runnable 

"GC task thread#0 (ParallelGC)" prio=10 tid=0x00007fdccc01b000 nid=0x6842 runnable 

上述日志为线程发生阻塞并超时被gc

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值