我们有一个java web应用程序在服务器上运行。它由tomcat托管。我已经启用了飞行记录器,我可以连接到JMC连接和记录飞行…
现在,我不知道如何找到使我的应用程序缓慢的类。让我澄清一下,通常情况下,服务器(60个访问者)大约占CPU使用的10%。但有时它变得非常资源饥渴,继续使用几乎100%的CPU(四核内存:16GB)。但访客很正常,大约60人左右……它仍然是这样的。我必须重新启动tomcat。
现在,我想找到做这些资源饥渴的情况的罪魁祸首类
您可以在JMC中打开JMX控制台并创建一个触发器,以便在CPU负载超过90%左右时转储记录。检查"when recovery from condition"
当你得到一个记录,你可以在范围导航器的概述选项卡上选择CPU峰值发生的间隔,应该在记录结束时。选中右上角的synchronize,然后单击左侧窗格中的"Code",您将看到在CPU峰值期间执行最热门方法的类/包的概述。