Tomcat 线程转储

2022-09-01 18:30:11

有没有从Tomcat获取线程转储?我想监视在某个时间点在Tomcat中运行的线程。

注意:我在Web逻辑上这样做,但我不知道如何在Tomcat上完成它。


答案 1

如果你使用Linux,你可以发送一个kill -3 [pid of your tomcat],它会转储catalina.out中的所有当前线程。


答案 2

有一个简单的方法来监视tomcat线程并进行转储。用 folowing java 选项开始 tomcat :

-Dcom.sun.management.jmxremote.port=<some free port>
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false

重新启动tomcat后,您只需启动jconsole(jdk的一部分)或visualvm,然后创建一个新的jmx连接到您上面选择的端口。
在这两个工具中,您还可以选择转储;)

!!!但只能在封闭/安全的环境中执行此操作 - 因为没有身份验证集。!!!


推荐