我们在生产tomcat服务器上遇到了一些问题,所以我想设置一些cron来定期检查线程转储,并在出现问题时发送警报电子邮件。要做到这一点,我们需要从shell脚本获取文件中的线程转储,但我无法做到这一点。在shell中,我可以定期发出KILL -3 <PID>命令,但问题是转储文件会转到包含GB级数据的catalina.out文件中,因此,只取出线程转储文件是一个痛苦的过程。(JStack.java:118)
at sun.tools.jstack.JStack
在这段时间内,我无法获得一个好的线程转储,并且visual vm只是冻结,直到它被解锁。有没有人知道我可以做些什么来开始调试这个家伙?可视化VM:jstack -F 4325 at sun.jvm.hotspot.tools.Tool.start(Tool.java:221)
at sun.jvm.hotspot
当我尝试使用JStack获取冻结应用程序的线程转储时,其中一个线程会给出以下结果: - org.eclipse.swt.internal.gtk.OS(JStack.java:60) at sun.jvm.hotspot.tools.JStack.mainDelegatingMethodAccessorImpl.java:25)
但是我不能通过jstack -l 33822从我的应用程序中获取线程转储。HotSpot VM not loaded然后,我使用-F尝试进行线程转储(LinuxDebuggerLocal.java:442)
at sun.jvm.hotspot.debugger.linux.LinuxAddress.getCompOopHandleAt(LinuxDebugger
我们正在尝试分析一个在生产环境中运行的远程tomcat应用程序。问题是web池中的所有线程都被阻塞了,这似乎阻止了我们连接jconsole、jmc甚至YourKit。当jvm运行良好时,所有这些工具都能正常工作。Could not connect to server1:9090 : Failed to retrieve RMIServer stub: javax.naming.CommunicationException [Root exception is java.rmi.ConnectIOException: error during JRMP co
我正在尝试获取JVM的线程转储。我使用top命令和ps查找进程id和pid的用户(即root用户)。因此,我运行以下命令来获取线程转储但是我得到了一些例外 at sun.jvm.hotspot.tools.Tool.execute(Tool.java:118)
at sun.jvm.hotspot.tools.JStack</em