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

我们有一个使用Tomcat 7的负载均衡的服务器群。偶尔(至less每天一次),服务器的CPU负载会急剧上升。 这似乎是合法的服务器使用情况,而不是一个错误,但我不知道如何确定什么特定的网站使用率造成这些CPU高峰。

以下是我们正在使用的工具:

  • Javamelody,它显示长时间运行的电话,但不是当他们发生。
  • Zabbix,显示CPU使用率,但不是什么原因造成的。
  • 服务器日志,通过pipe理指令,只显示线程,而不显示任何统计信息。

有什么方法可以把这些结合在一起,并找出什么线程正在运行的时间?

还是有更好的工具,我们需要使用?

如果这是可重复的或至less每天发生,运行NewRelic一天( 免费层 ),并尝试在操作系统级别捕获…或将其集成到应用程序中,并获得详细的统计数据。 非常方便的工具,这样的事情。


在这里输入图像说明

在这里输入图像说明

编辑:

分析也是一个选项…

在这里输入图像说明

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

我们使用称为psi-probe的工具。 这更多的是关注实时数据,而不是回顾之前发生的问题。 但它给所有你的不同的webapps,包括连接,线程,交通等统计。这是一个免费的工具体面。

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