АЦК. Настройки СП для JAVA

По итогу разбора предоставленных файлов, рекомендуется использовать следующие параметры управления JAVA памятью:
-Xmx7g -XX:+ScavengeBeforeFullGC -XX:+TieredCompilation -XX:G1HeapRegionSize=16m -XX:+DisableExplicitGC -XX:+UseParallelGC -XX:MaxGCPauseMillis=50 -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true -XX:ParallelGCThreads=4 -XX:ConcGCThreads=2

Здесь:
-XX:+UseParallelGC Сборщик мусора, работающий в параллельных потоках
-XX:+ScavengeBeforeFullGC Сначала очищает новые объекты в GC, а затем уже проводит полный цикл очистки.
-XX:+TieredCompilation Выключает компиляцию 1, 2 и 3 уровней для увеличения скорости компиляции. Сильно оптимизирует работу процессора и памяти.

Строка в командном файле \bin\start.bat будет выглядеть так:
set _SERVER_START_SCRIPT=%JAVA_CMD% %JAVA_PARAMS% %_SERVER_DEBUG_MODE% -Dfile.class.path="%FCP%" -Dgz.log=%SERVER_PORT% -Xmx7g -XX:+ScavengeBeforeFullGC -XX:+TieredCompilation -XX:G1HeapRegionSize=16m -XX:+DisableExplicitGC -XX:+UseParallelGC -XX:MaxGCPauseMillis=50 -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true -XX:ParallelGCThreads=4 -XX:ConcGCThreads=2 %BCP% com.bssys.loader.MainRunner %*

set _SERVER_START_SCRIPT=%JAVA_CMD% %JAVA_PARAMS% %_SERVER_DEBUG_MODE% -Dfile.class.path="%FCP%" -Xmx7g -XX:+ScavengeBeforeFullGC -XX:+TieredCompilation -XX:G1HeapRegionSize=16m -XX:+DisableExplicitGC -XX:+UseParallelGC -XX:MaxGCPauseMillis=50 -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true -XX:ParallelGCThreads=4 -XX:ConcGCThreads=2 %BCP% com.bssys.loader.MainRunner %*

Комментарии

  1. -XX:MaxGCPauseMillis=50
    Рекомендуется быть аккуратнее. Совершенно не факт что за 50 мс (+-) возможно успешно вычистить мусор из 7 ГБ "кучи". Для того чтобы выставлять этот параметр стоит включить логирование сборщика мусора с остальными параметрами, и посмотреть сколько операций вы полняет сборщик, ну или засечь сколько будет работать одна сборка мусора. Проводить измерения нужно под нагрузкой (в случае с АЦК, это обработка реплик или загрузка выписки). После чего ориентируясь что производительность данного сборщика мусора где-то 0,5 операций в секунду, ставить корректное значение параметра.
    Даже на физическом сервере с современными процессорами за 50 мс, оно не отработает. На физическом silver xeon данный параметр согласно эмпирическим вычислениям был а районе 500-700 мс. На ВМ - существенно ниже, в районе 1000 мс +-.

    Чем грозит то, что он будет не успевать в заданный интервал - тем что в какой-то момент (когда преодолеет барьер количества неуспешных сборок) оно точно остановит приложение для сборки мусора. Либо будет деградация производительности СП, пока не забьется куча.

    ОтветитьУдалить

Отправить комментарий

Популярные сообщения из этого блога

Linux (РедОС). Сброс пароля

TRUNCATE / DELETE / DROP или как очистить таблицу

КБК. КВФО - Код вида финансового обеспечения (деятельности)

SQL Error [53200]: ОШИБКА: нехватка разделяемой памяти Подсказка: Возможно, следует увеличить параметр max_locks_per_transaction

РедОС. Подключение к сетевой папке