如何收集人工线程转储?
对以下方法进行了排序和优先级排序。
在某些方法中,需要获取tomcat进程的PID。
在Windows上:$ netstat -ano | findstr
*与<口>为正在运行的端口人工id(默认为8081)
在Linux上使用:$ ps -aef | grep Java
方法#1 -跑步$ kill -3 ”
线程转储将被打印到catalina.out文件。
请注意,当Artifactory不作为服务运行时,转储将转到运行服务器的shell会话的STDOUT,而不会转到时间戳catalina.out文件。
方法#2 -使用支持包的内置线程转储收集器
方法#3 -使用“JStack”
- 导航到“
{JAVA_HOME} / bin” - *运行
$ ./jstack -l> "artifactory。美元(日期+ Y % m % d % H % % % S) .td”
*注意用户执行jstack必须是拥有JVM进程或具有访问它的足够特权的同一用户(意味着通常必须以“artifactory”用户的身份运行该进程)。
