使用什么工具来识别高 CPU Tomcat 线程?

使用什么工具来识别高 CPU Tomcat 线程?

我们有一个使用 Tomcat 7 的负载平衡服务器群。偶尔(至少每天一次)服务器的 CPU 负载会急剧上升。这似乎是服务器的正常使用情况,而不是故障,但我不知道如何确定是哪个特定站点的使用情况导致了这些 CPU 峰值。

以下是我们使用的工具:

  • Javamelody,它显示长时间运行的调用,但不显示它们发生的时间。
  • Zabbix 可以显示 CPU 使用率,但是不会显示导致 CPU 使用率上升的原因。
  • 根据管理指令,服务器日志仅显示线程但不显示任何统计信息。

是否有某种方法可以将它们联系在一起,并找出峰值出现时正在运行的线程?

或者我们需要使用更好的工具吗?

答案1

如果 Oracle Hotspot Jdk 1.7u40+ 运行 Tomcat,则 Java Flight Recorder 和 Java Mission Control 值得一试。请记住,您必须使用 JVM 参数运行 JVM-XX:+UnlockCommercialFeatures并提供 JMX 支持才能使用 JMC 连接到 Java 进程。

答案2

我们使用一个名为 的工具psi-probe。它更像是查看实时数据,而不是回顾之前发生的问题。但它提供了所有不同 Web 应用程序的统计数据,包括连接、线程、流量等。作为一款免费工具,它还不错。

https://code.google.com/p/psi-probe/

答案3

如果这种情况可重现或至少每天发生,请运行新Relic一天(免费套餐) 并尝试在操作系统级别捕获此信息...或将其集成到应用程序中并获取详细的统计数据。对于这样的事情来说,这是一个非常方便的工具。


在此处输入图片描述

在此处输入图片描述

编辑:

分析也是一种选择...

在此处输入图片描述

相关内容