监视Tomcat处理CPU峰值

时间:2017-03-02 13:03:14

标签: java performance tomcat monitoring tomcat8

我们在Debian下运行了几个Tomcat服务器(在AWS中),我们所有这些服务器都使用Cloudwatch指标来检测整体性能(内存,CPU和其他)。我们发现其中有一些我们有"尖峰"无论是CPU还是内存利用率,我们都想检测实际堵塞这些资源的内容。由于所有服务器运行都是基于Java的Tomcat容器内部,逻辑上是连接某种JVM分析器并可视地监视其中的线程,但正如我们在超过某个阈值时启用Cloudwatch警报(例如CPU)超过90%),我们想要触发某种自动统计信息收集,以查看实际的Java线程/代码是这种消费的根本原因。

是否有任何监视代理和/或性能收集工具可能有助于诊断这些特定的峰值,而不需要为实际长时间运行的进程收集统计信息?

我们已经尝试过New Relic,DataDog和Dynatrace的试用版本(由于其商业模式不适合小型公司,最新版本最有用,价格极其昂贵。)但是这些解决方案收集了一切,而不是只需要时间窗口,正如我上面提到的那样......这些可能会起作用,但如果在生产服务器中使用100%的时间(问题出现,而不是在预生产服务器中),则会给服务器带来相当大的开销。 )。

1 个答案:

答案 0 :(得分:0)

我强烈建议设置一个预生产环境并运行负载测试(使用JMeter等工具)和服务器端监控。

可以使用JMX协议监控Tomcat后端。

你有2个解决方案:

  • 免费:JMeter与Perfmon Agent一起监控CPU,内存和自定义JMX Bean,
  • 免费增值(又称> 50个并发用户付费):OctoPerf支持Apache Tomcat monitoring,可以使用内部监控代理监控您的aws服务器。

与往常一样,免费软件只需花费您的时间,付费软件可以让您直接在交易中找到一些便士的问题。