Хотя Metaspace может расти бесконечно, мой процесс вылетает, когда он достигает 1 ГБ

Я столкнулся со странной проблемой.

У меня есть машина с 32 ГБ оперативной памяти. Для масштабного тестирования я написал программу, которая порождает несколько экземпляров одного приложения в другом загрузчике классов. Моя цель - разместить 1000 экземпляров в одном приложении за 1 процесс. Я решил эту задачу постепенно. Я смог разместить до 800 экземпляров без проблем.

Когда я увеличиваю до 1000 экземпляров, я получаю ошибку нехватки памяти. Смотрите следующий файл для полного журнала hs_err.log.

Как вы можете видеть, моя программа не выделяется из Metaspace. Это последовательно происходит, когда Metaspace достигает около 1 ГБ памяти. Согласно документации Java область Metaspace не ограничена, и на моей машине достаточно памяти для размещения более 1 ГБ метапространства.

когда мой процесс падает, я вижу следующее сообщение:

mmap failed for CEN and END part of zip file
Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00007f5056e7c000, 12288, 0) failed; error='Cannot allocate memory' (errno=12)

There is insufficient memory for the Java Runtime Environment to continue.
Native memory allocation (mmap) failed to map 12288 bytes for committing reserved memory.

An error report file with more information is saved as:
 /opt/itzik/multirunner-1.0.0/hs_err_pid8568.log

Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00007f50570c6000, 262144, 0) failed; error='Cannot allocate memory' (errno=12)
[thread 139989735913216 also had an error]

mmap failed for CEN and END part of zip file

mmap failed for CEN and END part of zip file

[thread 139984035763968 also had an error][thread 139985862088448 also had an error]

[thread 139983882610432 also had an error]

Мои вопросы:

  • Есть ли недокументированное ограничение на размер Metaspace (случайно это 1 ГБ)?
  • Есть ли какое-то ограничение на количество загрузчиков классов, которые может использовать моя программа?
  • Вы видите какую-то другую подсказку, которая объясняет, почему моя программа вылетает из прикрепленного файла?

Спасибо

0 ответов

Другие вопросы по тегам