Где заданы размеры кучи JVM по умолчанию в linux (SL4) - PullRequest
1 голос
/ 30 октября 2009

Я сейчас использую Sun Java 1.6 на кластере SL4.

По какой-то причине 1.6 JVM запускается с невероятно большой кучей и не может запуститься:

java -version
Error occurred during initialization of VM
Could not reserve enough space for object heap
Could not create the Java virtual machine.

Если я начну с, например, -Xmx1800M, то работает нормально. Итак, мне интересно, где установлен размер кучи по умолчанию, и, что более важно, как его изменить?

Машина имеет 8 ГБ физической памяти, и я полагаю, что серверная JVM от Sun должна запускаться по умолчанию с половиной памяти до 512 МБ, но это явно не так, поскольку она пытается выделить более 1800 М *. 1008 *

РЕДАКТИРОВАТЬ: я понимаю, что можно использовать _JAVA_OPTIONS, но это кажется немного неуклюжим; Я где-то ожидал файл свойств, но пока не смог его найти.

Ответы [ 2 ]

1 голос
/ 30 октября 2009

Нет стандартного файла свойств. (Sun) JVM имеет жестко запрограммированные значения по умолчанию.

1 голос
/ 30 октября 2009

Для этого нет файла свойств. Согласно Эргономика сборщика мусора :

начальный размер кучи:

крупнее 1/64 машины физическая память на машине или какой-то разумный минимум. До J2SE 5.0, начальный размер кучи по умолчанию был разумный минимум, который варьируется в зависимости от Платформа. Вы можете переопределить это по умолчанию используется командная строка -Xms опция.

максимальный размер кучи:

Меньше 1/4 от физического память или 1 ГБ. До J2SE 5.0 максимальный размер кучи по умолчанию был 64 МБ. Вы можете изменить это значение по умолчанию, используя параметр командной строки -Xmx.


Примечание: Границы и доли, указанные для размера кучи, являются правильными для J2SE 5.0. Они могут быть отличается в последующих выпусках как компьютеры становятся более мощными.

Учитывая, что у вас 8 ГБ ОЗУ, максимальный размер кучи по умолчанию должен составлять 1 ГБ, при условии, что вы используете Java 6.

...