Тюнинг 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