Тюнинг JVM и ПамятиВремя чтения: 10 минСложность: ЭкспертнаяОпубликовано: 2026-09-28

Тюнинг JVM для высоконагруженных серверов L2: G1GC vs ZGC

Параметры запуска Java HotSpot для минимизации пауз Stop-The-World во время осад замков на 1000+ игроков. Сравнение G1GC и Generational ZGC.

Тюнинг JVM для высоконагруженных серверов L2

Во время осад (Castle Sieges) игровой сервер обрабатывает сотни тысяч тиков перемещений, снарядов и расчетов AOE-урона в секунду, порождая огромный объем короткоживущих объектов (Location, SkillUse, FastList$Node).

Рекомендуемые флаги для Java 17/21 (Generational ZGC)

ZGC сводит паузы сборщика мусора к десятым долям миллисекунды:

java -server -Xms16G -Xmx16G \
  -XX:+UseZGC \
  -XX:+ZGenerational \
  -XX:+AlwaysPreTouch \
  -XX:+UseNUMA \
  -XX:+UseStringDeduplication \
  -Dfile.encoding=UTF-8 \
  -jar l2jserver.jar

Альтернатива для Java 11/17 (Tuned G1GC)

java -server -Xms12G -Xmx12G \
  -XX:+UseG1GC \
  -XX:MaxGCPauseMillis=20 \
  -XX:InitiatingHeapOccupancyPercent=45 \
  -XX:G1ReservePercent=15 \
  -XX:SurvivorRatio=8 \
  -jar l2jserver.jar
Ко всем статьям базы знанийСкачать сборки и геодату