1

我有一个在 Amazon EC2 上运行的 Tomcat webapp。我预计将来会大量使用 webapp,因此正在尝试了解如何监控 webapp 并确保它运行良好。

Amazon EC2 显示每个 EC2 实例的以下Cloudwatch 指标

  1. 平均 CPU 利用率
  2. 平均磁盘读取
  3. Sum Disk Read Ops (Count)
  4. 平均磁盘写入
  5. Sum Disk Writes Ops (Count)
  6. 最大网络插件
  7. 最大网络输出
  8. 总和状态(任何)
  9. 求和状态实例 10.求和状态系统

我还找到了一个库Metrics,可用于监控 JVM,但我无法理解我应该监控什么以及为什么要监控的完整想法?

我的问题

当服务器上的用户负载突然增加时,我应该监控什么以及为什么要确保我的 Tomcat Webapp 正常工作?

4

3 回答 3

1

您在Cloudwatch Metrics中描述的是硬件监控。

监控Tomcat就是我们所说的软件监控。这涉及(但不限于):

  • 用户会话数
  • 线程数
  • 各种内存统计信息(heap used/max、permgen used/max、old gen、eden size 等)
  • 垃圾收集(区域之间的促销、频率、完全停止世界事件等)
  • 正常运行时间
  • 您特定于应用程序的监视器(例如,如果您需要访问数据库,则能够进行简单的选择,例如SELECT * FROM DUAL成本可以忽略不计)

为什么所有这些事情?它们中的每一个都有助于更好地了解您的应用程序瓶颈和可能的中断或响应缓慢的时间。这些指标中的每一个都可以解释为什么您的应用突然停止响应或响应时间激增。

我还建议您查看JMX,它是用于监控的标准接口。您可能希望通过 JMX 公开所有这些监视器。

于 2012-11-08T10:53:18.247 回答
1

我会推荐VisualVM。这是一种使用 Web 前端测量运行 Tomcat 的 JVM 的方法(您可以通过这种方式分析多个 Tomcat 实例)。以及查看哪些课程承受的压力最大的能力。

当然,正如您所提到的,您仍然可以获得 Amazon 为您的实例提供的所有分析。

您应该寻找的是任何使用量特别大并试图优化这些过程的类。VisualVM 将为您提供有关此的统计信息。

于 2012-11-08T10:01:07.040 回答
0

我们使用Nagios + JMXProxy来检测 JVM 本身以及 Tomcat 公开的大量信息。

您可以在 Tomcat 的监控常见问题解答中阅读有关要监控的内容的一些建议。

如果您阅读文档和常见问题解答,您会发现令人惊奇的内容。

于 2012-11-08T19:51:34.517 回答