【发布时间】:2019-07-31 14:02:31
【问题描述】:
我基于 JVM 的应用程序在 Amazon ECS 上运行。在某些我无法在测试环境中重现的情况下,它会因 OutOfMemoryError 而崩溃。我想捕获 JVM 堆转储(使用 HeapDumpOnOutOfMemoryError)以查看发生了什么。但是有一个问题——因为我的应用程序使用了大量内存,堆转储需要很长时间,并且 ECS 会杀死中间的容器,因为健康检查失败。我最终得到了一个无法使用的截断转储文件。
我可以通过更改健康检查配置来获得正确的堆转储,但这可能会影响 ECS 服务,因为如果没有良好的健康检查,集群可能会运行无响应的实例。
我正在寻找一种方法,它可以让我自动捕获堆转储,而对生产集群的影响最小。
【问题讨论】:
标签: amazon-ecs