【发布时间】:2012-08-04 05:22:00
【问题描述】:
这是一个棘手的问题 - 我们有一个 Java Web 应用程序,部署在 Amazon ElasticBeanStalk 上的 Tomcat Web 服务器上。我们相信我们有内存泄漏 b/c 似乎 JVM 每天晚上都会因 OutOfMemory 异常而崩溃。 问题是崩溃后,EBS 会自动废弃旧的 EC2 实例并启动一个新实例。所有的日志和信息也会被废弃......
我现在正在开发一个自定义 CloudWatch 指标来监控 JVM 的内存(你会认为应该有一个准备好的......)但这不会帮助我生成堆转储
有没有人遇到过类似的问题并且知道如何在 EBS 上捕获这些错误?
【问题讨论】:
-
我怎么感觉你的问题不太清楚。我们在 Amazon EBS 上也有我们的 tomcat 服务器,我已经看到过几次内存不足错误,但该错误仅使 tomcat 崩溃并且对 EC2 实例没有影响。将您的 EBS 实例视为普通服务器。 Tomcat 中的崩溃永远不会重新启动机器。
-
EBS 是弹性 beanstalk,而不是存储服务 (S3)。 EBS 的部分功能是自动负载平衡,您可以在其中定义根据当前流量自动启动和终止的最小和最大实例。实例的最小数量不能低于 1,因此如果您有一个正在运行的实例并且 tomcat 停止响应 HTTP 请求,那么 EBS 将自动终止 EC2 实例并启动一个新实例。这不是 EBS 最基本的功能吗???
标签: java out-of-memory amazon-ebs