我正在 Windows 服务器上开发一个 Struts 网站,为 JSP、Actions、Servlet、底层 JAR 等几乎所有内容实现新功能和修复。一切都进展顺利,直到一个通过测试的 JAR 更新导致登录页面速度变慢(加载时间超过 10 秒)。
令人费解的是,没有其他页面受到影响,我本地开发服务器上的同一页面没有受到影响,最令人困惑的是,在同一个 Tomcat 实例上运行的测试站点上的同一页面没有受到影响,该实例具有近乎镜像的配置,新类等在此进行了测试,然后从中引入。这种性能打击只发生在生产站点中。
我仔细检查了代码,发现该页面(JSP 和相关操作)上没有发生任何异常,而此网站的其他页面也没有发生任何异常,没有出现任何减速。日志中没有显示任何异常,加载页面对性能监视器没有任何明显影响。我已经完全重启了 Tomcat 服务。
我现在的直觉是对其进行分析以找出它在等待什么,但 Java VisualVM 似乎认为它无法在 JRE 上运行,所以我试图找出如何诊断此问题。到目前为止,我的 Google-fu 让我失望了。
Tl'dr;有哪些工具可用于诊断实时 Tomcat 站点中的性能问题。
答案1
我更愿意在 tomcat 中启用 JMX,并使用 VisualVM 进行配置文件。以下是有关如何为配置文件启用 JMX 的信息https://stackoverflow.com/questions/1890431/profile-tomcat-application-with-visualvm
答案2
通常,你会使用分析器来实现这一点。有几种可用的分析器。
我个人的选择是YourKit Java 分析器但请记住,这主要是因为他们向开源开发人员提供免费许可,所以这是我最熟悉/最满意的。