Как увеличить размер кучи для сервера jBoss

В моем проекте есть сценарий загрузки файлов. Когда я пытаюсь загрузить большие файлы, это дает мне ошибку OutOfMemory. Эта ошибка связана с размером кучи Java.

Как вы можете увеличить размер кучи в Java и какой файл мне нужно изменить для этого? Я использую сервер jboss 5.1 для запуска моего приложения.

Ответ 1

Вы можете установить его как аргументы JVM обычным способом, например. -Xms1024m -Xmx2048m для минимальной кучи 1 ГБ и максимальной кучи 2 ГБ. JBoss будет использовать переменную среды JAVA_OPTS для включения дополнительных аргументов JVM, вы можете указать ее в файле /bin/run.conf.bat:

set "JAVA_OPTS=%JAVA_OPTS% -Xms1024m -Xmx2048m"

Однако это более обходное решение, чем реальное решение. Если несколько пользователей одновременно загружают большие файлы, вы столкнетесь с одной и той же проблемой рано или поздно. Вам нужно будет постоянно увеличивать память. Вам лучше настроить файловый анализатор загрузки файлов, чтобы сохранить загруженный файл на временном диске, а не полностью в памяти. Пока неясно, какой парсер вы используете, подходящий ответ не может быть дан. Однако чаще всего Apache Commons FileUpload используется под обложками, тогда вы должны прочитать документацию с "пороговым размером" в качестве ключевого слова, чтобы настроить ограничение памяти для загруженных файлов. Когда размер файла превышает пороговое значение, он будет записан на диск.

Ответ 2

В wildfly 8 и более поздних версиях перейдите на /bin/standalone.conf и разместите там JAVA_OPTS, со всем, что вам нужно.

Ответ 3

Отредактируйте следующую запись в файле run.conf. Но если у вас несколько JVM, запущенных на одном JBoss, вы можете запустить его с помощью аргумента командной строки -Xms2g -Xmx4g (или любых ваших предпочтительных параметров начальной/максимальной памяти.

if [ "x$JAVA_OPTS" = "x" ]; then
    JAVA_OPTS="-Xms2g -Xmx4g -XX:MaxPermSize=256m -Dorg.jboss.resolver.warning=true

Ответ 4

Используйте параметры командной строки -Xms и -Xmx при запуске java:

-Xms<size>        set initial Java heap size
-Xmx<size>        set maximum Java heap size

Для получения дополнительной справки введите java -X в командной строке.

Ответ 5

Посмотрите в папку JBoss bin для файла run.bat(run.sh в Unix)

найдите строку set JAVA_OPTS (или просто JAVA_OPTS в Unix) в конце этой строки добавьте -Xmx512m. Измените номер на объем памяти, который вы хотите выделить JBoss.

Если вы используете пользовательский script, чтобы запустить свой jboss-экземпляр, вы также можете добавить опцию JAVA_OPTS.

Ответ 6

Я упоминал об изменениях конфигурации, необходимых для увеличения размера кучи в Windows или Linux.

Linux:

bin/standalone.conf

Проверьте следующую строку,

JAVA_OPTS

и измените его в соответствии с вашими размерами кучи

-Xms1303m: initial heap size in megabytes
-Xmx1303m: maximum heap size in megabytes

JAVA_OPTS="-Xms1024M -Xmx2048M -XX:MaxPermSize=2048M -XX:MaxHeapSize=2048M"

Windows:

bin/standalone.conf.bat

JAVA_OPTS="-Xms1024M -Xmx2048M -XX:MaxPermSize=2048M -XX:MaxHeapSize=2048M"

Теперь перезапустите сервер, и он будет работать без каких-либо ошибок размера кучи.

Для получения дополнительной информации вы можете обратиться по этой ссылке ниже.

https://access.redhat.com/documentation/en-us/jboss_enterprise_application_platform/5/html/getting_started_guide/adjust_memory_settings

Ответ 7

В моем случае для jboss 6.3 мне пришлось изменить JAVA_OPTS в файле jboss-eap-6.3\bin\standalone.conf.bat и установить следующие значения -Xmx8g -Xms8g -Xmn3080m, чтобы jvm занимал 8 ГБ пространства.

Ответ 8

Что изменить?

set "JAVA_OPTS=%JAVA_OPTS% -Xms1024m -Xmx2048m"

Где поменять? (Обычно)

bin/standalone.conf(Linux) standalone.conf.bat(Windows)

Что если вы используете собственный скрипт, который переопределяет существующие настройки? затем?

setJBosssEnvironment.cmd/.sh (вид имени файла будет там)

Больше информации уже предоставлено некоторыми членами нашего комитета! BalusC.

Ответ 9

Добавьте следующую опцию в jboss в bin/standalone.conf.bat

   set "JAVA_OPTS=-Xms1G -Xmx1G -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=1024m"