IBM JDK сбрасывает слишком много кучи на OutOfMemory. Как я могу уменьшить это #?
Мы новичок в IBM JVM. При просмотре дампов кучи, вызванных OutOfMemoryError (i..e -XX:+HeapDumpOnOutOfMemoryError), мы часто видим несколько дампов (файлов.phd), созданных в одно и то же мгновение. Пример:
heapdump.20141111.011601.8944.0003.phd heapdump.20141111.011601.8944.0005.phd heapdump.20141111.011601.8944.0007.phd heapdump.20141111.011601.8944.0009.phd
Когда я их прочитал, jvm сгенерировал эти 4 дампа кучи в 2014-11-11 01:16:01, для pid #8944.
Так почему 4? И почему 4 в ту же секунду? [Я предполагал, потому что 4 фактически OOM произошли в ту же секунду]
просматривая эти дампы, я обнаружил, что они довольно идентичны. Дампы 2,3 и 4 не добавляют никакой информации, а только загромождают и заполняют диск.
Как я могу настроить IBM jvm для выгрузки только одного дампа кучи? Можно ли настроить время ожидания между дампами кучи?
Спасибо
1 ответ
Не на 100% уверен в причине множественного дампа, возможно, что процесс дампа / восстановления генерирует другое OOM.
Вы можете использовать опцию IBM JDK -Xdump (управляет тем, как вы используете дамп-агенты и дампы), чтобы ограничить число получаемых дампов. OutOfMemoryErrors
предоставляя диапазон.
Например, чтобы ограничить число одним дампом, используйте диапазон 0..1: -Xdump:heap:range=0..1
Диапазон по умолчанию 1..4
, вы можете увидеть это, запустив JVM с -Xdump:what