Я считаю, что основная проблема та же, что описана в хороших ответах на вопрос SO Не удалось зарезервировать достаточно места для кучи объектов .
То есть JVMпытается запросить у ОС память для кучи, а ОС отказывается, потому что она уже выделила всю виртуальную память другим процессам.
Я ожидаю, что это происходит при запуске индексаторачасто потому что:
- увеличивает среднюю загрузку системы (количество процессов, работающих / ожидающих запуска), и, следовательно,
- увеличивает среднюю системувыделенные ресурсы виртуальной памяти и, следовательно,
- повышает вероятность того, что ОС скажет «Нет», когда новая JVM начнет запускать индексатор.
Конечно, это в основном гипотеза ...
Что вы можете с этим поделать?
- Увеличить размер файла диска или раздела, используемого для подкачки страниц.
- Добавление дополнительной физической памяти к машине.
- Запускайте индексатор реже и / или когда система не занята.
- Обрезает размер кучи индексатора.
- Переместите часть другой нагрузки на другую машину.
Некоторые из них необходимо выполнять с осторожностью, поскольку они могут по-разному влиять на общую производительность системы.
(Между прочим, я не думаю, что переход на 64-битную ОС обязательно поможет, а запуск 64-битной JVM определенно не поможет ...)