java-如何从运行生产Tomcat Web应用程序获取线程调试信息?
作者:互联网
我们有一个生产Web应用程序,该应用程序似乎陷入了线程阻塞,无法完成大量工作,并且运行了CPU和平均负载.我几乎知道问题是什么-我们的DWR服务正在将一些非常大的内容转换为Javascript对象响应.问题是我不知道哪个服务调用会产生大量数据,因为该线程在我的任何代码外部(它在DWR Servlet中,将我的返回值转换为出站javascript对象…否则我可以请参阅线程转储中的我的服务方法).
但是,您不需要了解DWR就能为我提供帮助,因为我的问题是这样的:
这对我来说有什么办法可以查看已部署的Web应用程序(Tomcat 6),并查看线程处于哪种状态,例如变量值等?如果我基本上可以对线程进行“调试快照”,那将是完美的,好像我在本地开发期间在调试模式下有一个断点一样,但是让我了解或打印出某些东西的价值的任何解决方案都是有用的.
谢谢!
更新
如果可以不重新启动服务器,那将是最好的,因为此问题只会偶尔出现一次,并且重新启动会使该问题消失.看来JProfiler需要将-agentpath选项添加到JVM,所以我需要重新启动它.
解决方法:
是的,您可以附加Visual VM 1.3.2,并下载并安装所有插件,以查看每个线程的状态,堆中的代数等.
标签:multithreading,debugging,tomcat,dwr,java 来源: https://codeday.me/bug/20191102/1989963.html