hadoop jvm进程挂起时没有任何错误消息,我想看看jvm进程在做什么(它们被卡住的地方)。当我用c++编程时,我使用了gdb,它可以连接到正在运行的进程并显示线程的调用堆栈。如何对jvm执行相同的操作?
oxiaedzo1#
您可以使用以下命令
kill -3 [PID]
这将把所有线程的堆栈跟踪打印到java进程的控制台。另一种选择是使用jstack实用程序,它与jdk捆绑在一起。jstack也做了同样的事情。如果没有帮助,那么探查器应该帮助。它们可以收集比一个线程转储多得多的数据。
1条答案
按热度按时间oxiaedzo1#
您可以使用以下命令
这将把所有线程的堆栈跟踪打印到java进程的控制台。另一种选择是使用jstack实用程序,它与jdk捆绑在一起。jstack也做了同样的事情。
如果没有帮助,那么探查器应该帮助。它们可以收集比一个线程转储多得多的数据。