The Best Resource for Minecraft
The Best Resource for Minecraft

Прапорці Aikar змінюються на 12 GB — п'ять із них, і один зменшується

Прапорці Aikar змінюються на 12 GB — п'ять із них, і один зменшується

Копіювання набору прапорців для 4 GB на сервер із 16 GB залишає п'ять хибних значень. Ось саме які п'ять, а також кількість гравців, за якої сервер із модами перетинає цю межу, а ванільний — ні.

Прапорці Aikar — це стандартні для спільноти аргументи JVM для сервера Paper, і зазвичай їх копіюють одним блоком. Але це не один блок: із двадцяти аргументів, п'ять змінюються залежно від того, чи обсяг вашої купи менший або більший за 12 GB. Вставлення набору для малої купи на сервер із великою купою — це найпоширеніший спосіб запустити «рекомендовані прапорці» і не отримати їх.

П'ять тих, що змінюються

прапорецьменше 12 GB12 GB і більше
-XX:G1NewSizePercent3040
-XX:G1MaxNewSizePercent4050
-XX:G1HeapRegionSize8M16M
-XX:G1ReservePercent2015
-XX:InitiatingHeapOccupancyPercent1520

G1ReservePercent is the one that goes down. Чотири з п'яти зростають зі збільшенням розміру купи, а той один зменшується, через що напівзгадане «підняти числа для великого сервера» створює хибний набір, а не просто неоптимальний. Він резервує частку купи проти збою евакуації, а більша купа потребує меншої частки для збереження того самого абсолютного запасу.

Решта тринадцять -XX: arguments are identical at every heap size — -XX:+UseG1GC, -XX:MaxGCPauseMillis=200, -XX:+AlwaysPreTouch, -XX:SurvivorRatio=32, -XX:MaxTenuringThreshold=1 and the rest do not move. Only -Xms and -Xmx track the heap size itself.

Де насправді проходить межа 12 GB

Генератор на цій сторінці визначає розмір купи за кількістю гравців:

GB = clamp( ceil( (modded ? 2.5 : 1) × (2 + players / 12) ), 2, 32 )

Сервери з модами розраховуються як 2.5× від ванільних, і саме цей фактор визначає, хто взагалі побачить гілку великої купи:

гравцівванільнийз модами
103 GB8 GB
204 GB10 GB
295 GB12 GB ← з модами перетинає тут
507 GB16 GB
10011 GB26 GB
10912 GB ← ванільний перетинає тут28 GB

Сервер із модами досягає прапорців великої купи за 29 гравців. Ванільний не досягає до 109. Тож для більшості людей, які запускають ванільний Paper, набір для малої купи залишається правильним назавжди — а для більшості, хто запускає сервер із модами, він перестає бути правильним набагато раніше, ніж вони очікують.

Два обмеження в цій формулі, про які варто знати

Вона ніколи не рекомендує більше ніж 32 GB. Ваніль досягає ліміту при 349 гравцях і залишається там. Це не артефакт округлення — понад приблизно 32 GB JVM втрачає стислі вказівники на об'єкти, і кожне посилання в купі стає більшим, тому більше оперативної пам'яті може означати менше корисної купи. Масштабування понад цю точку — завдання для другого сервера, а не для більшого.

Вона ніколи не рекомендує менше ніж 2 GB, навіть для одного гравця, оскільки нижня межа обумовлена серверним програмним забезпеченням, а не кількістю гравців.

І що б не казала формула: не віддавайте JVM усе, що є на машині. -Xms and -Xmx are set to the same value here on purpose — a fixed heap avoids the JVM resizing under load — which means the number you pick is claimed immediately and permanently. Leave the operating system 1–2 GB it does not have to fight you for.

Спробувати інструмент: Server Config Generators →