不知道应该选择哪种调查方式。 一段时间后(将近 4 周)连续运行的 Web 应用程序运行缓慢。 检查:
catalina.out - no full gc.
常规 gc 需要将近 0.2 秒,并在将近 10 - 30 秒内执行一次。 在同一台服务器上,另一个运行良好的 web 应用程序的 tomcat。 所以问题不在主机上。 我真的很困惑。应该检查什么?
最佳答案
您可以使用 visualvm
来跟踪您的 tomcat 性能,您必须添加 JMX 参数以允许您将 visualvm 连接到您的 tomcat。
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.port=8484
-Dcom.sun.management.jmxremote.ssl=false
在 visualvm
>> Threads
选项卡中你会在右上角看到一个按钮 Thread Dump
,这个按钮生成一个名为线程转储,此文件包含当前存在的所有线程,生成多个线程转储并跟踪您的应用程序线程,您将清楚地看到慢速线程当前正在做什么,这正是导致缓慢的方法。
我希望这能帮助您找到导致速度缓慢的根本原因。
关于java - Tomcat Java Web 应用程序运行缓慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21383373/