Мое приложение на основе JVM работает на Amazon ECS. При некоторых условиях, которые я не могу воспроизвести в тестовых средах, происходит сбой с OutOfMemoryError. Я хочу захватить дамп кучи JVM (используя HeapDumpOnOutOfMemoryError
), чтобы увидеть, что происходит. Но есть проблема - поскольку мое приложение использует много памяти, сброс кучи занимает очень много времени, и ECS убивает контейнер в середине этого процесса, потому что проверки работоспособности не выполняются. Я получаю непригодный усеченный файл дампа.
Я могу получить правильный дамп кучи, изменив конфигурацию проверки работоспособности, но это может повлиять на службу ECS, поскольку без качественной проверки работоспособности кластер может запускать неотвечающие экземпляры.
Я ищу способ, который позволил бы мне автоматически захватывать дампы кучи с минимальным воздействием на производственный кластер.