Где я могу установить Eden Space?
Краткое описание проблемы:
Размер памяти, отображаемый рядом с PS Eden Space, составляет 639,5 МБ, пока JAVA_OPTS содержит -Xms2558m -Xmx2558m
(2.5G) .
Подробности:
После создания файла seten.sh я добавляю следующую строку:
export JAVA_OPTS="-Dfile.encoding=UTF-8 -Xms2558m -Xmx2558m -XX:PermSize=2558m -XX:MaxPermSize=2558m -XX:+HeapDumpOnOutOfMemoryError
Затем я наблюдаю за пользовательским интерфейсом сервера приложений, чтобы убедиться, что это увеличение памяти для чего
Я был удивлен: почему, когда я просматриваю свое приложение, PS Old Gen остается стабильным, а PS Eden Space быстро потребляет память. Тем не менее, размер Memmory отображается около PS Eden Space составляет 639,5 МБ.
Как увеличить PS Eden Space? Какой вариант я должен использовать известно, что мы используем Java8?
Когда я установил -Xms2558m
: Слишком ли известно, что мое приложение представляет собой приложение Grails (включает в себя Spring Framework, Spring Security,...)
1 ответ
Несколько вопросов:
-Xms
устанавливает начальное пространство кучи и не имеет ничего общего с пространством Eden. Это то, что JVM выделяет при запуске. Если требуется больше, он выделяет до -Xmx
позже, но это относится к общему пространству кучи, а не к одному из пространств генерации GC (они будут частью кучи)
Вы можете настроить соотношение молодого и старого поколения с -XX:NewRatio=
, Проверьте документацию для своей JVM, если это Oracle, этого может быть достаточно, другие могут иметь лучшие ссылки. Вы найдете множество учебников и статей по GC по всей сети.
Когда вы читаете их: насколько я понимаю, Янг и Иден часто используются как синонимы.
Постоянное пространство генерации 2.5G звучит как waaaaay слишком большое - и вы должны использовать CATALINA_OPTS для установки конфигурации tomcat, а не JAVA_OPTS.