Оптимизация майнкрафт сервера

Как повысить производительность?

Лаги в майнкрафт сервере, что делать? — поверьте, это самый популярный вопрос, который возникает практически у каждого новичка в сфере серверов в этой замечательной игре. Не переживайте, так как вы уже сделали первый шаг к решению данной проблемы. Читайте весь репозиторий внимательно и выполняйте наши рекомендации постепенно.

Предупреждение

Эта статья основана на версии 1.17.1 с ванильными ядрами. Если у вас моды — мы не думаем, что вы нашли подходящее руководство. Также, обратите внимание на то, что результаты стабильности и корректной работоспособности сервера после оптимизации может отличатся в разных случаях. Если вы уверены, что была допущена ошибка или тут чего-то нехватает - пожалуйста, отпишите нам.

Начало

Моментальная оптимизация

Делайте регулярные перезапуски сервера, например каждый день. Так как это освобождает мусор из ОЗУ, отгружает чанки и сохраняет карту. Это как минимум делают крупные сервера, несмотря на uptime

TPS - что это

TPS — сокращение от Ticks per Second — это число тактов за секунду. Чем выше данный показатель, тем большая производительность сервера. В среднем это значение варьируется от 19.8 до 20.0. Вы можете прописать /tps и посмотреть на цифры. У вас ниже 19.5 TPS? Сервер подлагивает.

Server.jar - ядро

Выбор ядра — очень важная вещь при сборке вашего сервера. Ядро напрямую влиет на производительность сервера. На данный момент существуют несколько ядер, которые мы советуем использовать, но есть и те, от которых вам категорически нужно отказаться.

Рекомендую:

  • Airplane — стабильное и довольно популярное ядро, набирающее обороты среди серверов. Поддерживается опытными разработчиками, патчи делают очень быстро. Форк Paper.

  • Patina — новое, качественное ядро. Мои тесты длились около 14 дней и можно сделать один вывод - эта штука очень быстрая, но у меня нет особого доверия к этому ядру, так как оно только разрабатывается и недавно появилось на свет. Из минусов, исключает опрессора и подобные вещи связанные с багами. Если вы желаете иметь ванильный сервер - ставить его не имеет смысла

  • Purpur — ядро проверено временем. Хорошее мнение со стороны многих администраторов серверов, но оперативной памяти будет использовать больше, чем вышеперечисленные ядра.

  • Paper — форк Spigot. Самое популярное ядро в мире, и стабильное.

Нерекомендую:

  • Yatopia — Ядро больше не поддерживается и было заброшено.

  • Sugarcane — Yatopia 2.0. Хоть оно и разрабатывается, но содержит патчи от Yatopia.

  • Bukkit/Spigot — эти ядра морально устарели. Их использовать категорически запрещено (если вы не мазохист, конечно же).

  • Sponge (для модов и sponge-плагинов) — Во-первых стабильности никакой нет, а во-вторых ограничение в плагинах: можно ставить только плагины для этого ядра, хотя есть ядро Magma, которое может поддерживать и плагины и моды одновременно.

Пожалуйста, остерегайтесь других ядер! В 99.99% случаев это лишь название. Ваш сервер и его данные могут пострадать.

Добавление сборщика мусора

Сборщик мусора обязательно должен стоять в каждом сервере, так как Java очень любит кушать оперативную память, но очищает её плохо.

Если вы используете наш хостинг, действий принимать не требуется, в иных случаях вам нужно вставить -XX:+UseSerialGC в строку запуска. По нашим тестам, этот сборщик оказывается лучше, чем тот, который применён в флагах Aikar'а.

java -Xmx2G -Xms16G -XX:+UseSerialGC -jar airplane.jar nogui 

Прогрузка карты

Прогрузите карту с помощью плагина Chunky. Станьте на нулевые координаты карты и введите эти команды поочерёдно: /chunky center, /chunky radius 3000, /chunky start. Готово! Теперь вам нужно подождать некоторое время, пока плагин прогрузит 3000 блоков, которые мы задали во второй команде. Желательно ограничить свой мир до 3-6 тыс. блоков. Поверьте, такого количества блоков будет вполне достаточно, чтобы всем было приятно играть. Если нужно увеличить размер карты до более высоких значений — вместо 3000 напишите своё число.

Есть и другой плагин для прогрузки карты — WorldBorder, если вам надо.

Плагины

Никогда не ставьте плагины, которые заявляют, что они оптимизируют ваш сервер или плагины, которые изменяют генерацию мира. ClearLagg и ему подобные создают фатальные лаги.

Ссылки на плагины, которые действительно оптимизируют сервер: ServerBooster, MFM.

Плагины, автоматически сохраняющие мир — не имеют смысла. Multiverse Core замените на BungeeCord — систему (ядро), которая позволяет связывать несколько серверов между собой. Также, скачивать плагины нужно только с этих сайтов: spigotmc.org, dev.bukkit.org. В целях безопасности вашего-же сервера, не ищите ресурсы в других местах.

И ещё: советуем не засорять свой сервер изрядным количеством плагинов. Чем больше плагинов, тем больше нагрузка на сервер. Добавьте столько плагинов, чтобы вашим игрокам было приятно играть. Согласитесь, когда вы видите перед собой текст в боссбаре, скорборде, в автоматических сообщениях в чате, а уж тем более надписи на весь экран, желание уйти с этого сервера возрастает до 100%, не так ли? Административные плагины, которые используются раз в никогда — советуем удалить, различные дополнения, которыми мало кто будет пользоваться — советуем удалить, ненужные плагины просто удаляйте.

Конфигурации сервера

view-distance - дистанция прогрузки чанков. Если на сервере много игроков и лаги происходят из-за чанков - снижайте этот параметр до 4-5 чанков. 6 чанков вполне достаточно для ванильного выживания.

view-distance=6

spawn-limits - параметр, который отвечает за изменение количества мобов на одного игрока. Эти ограничения применяются только к животным или монстрам в загруженных чанках. Если вам не нужны летучие мыши - ambient ставьте на 0.

monsters: 25, animals: 8, water-animals: 2, water-ambient: 1, ambient: 1

period-in-ticks - чем меньше, тем быстрее сервер будет выгружать пустые чанки. Если на вашем сервере играет больше 60 человек, желательно опустить этот параметр до 350.

period-in-ticks: 400

autosave - если у сервера стоит HDD накопитель, вам придётся страдать от лагов из-за автоматического сохранения. Вы должны иметь SSD накопитель для нормальной работы сервера. Поднимите значение до 12000 для комфортной игры. Кстати, если у вас стоит плагин на автосохранение мира - удалите его, используйте этот параметр, он ничем не хуже.

autosave: 12000

save-user-cache-on-stop-only - этот параметр отключает постоянное сохранение пользовательских данных. Если ваш сервер аварийно выключиться, пользовательские данные не будут сохранены. Желательно перезагружать свой сервер раз в 48-72 часа, чтобы предотвратить потери. Изменяйте этот параметр на свой страх и риск!

save-user-cache-on-stop-only: true

entity-activation-range - это группа параметров, которая регулирует, насколько близко животные и мобы должны находиться к вам, чтобы активировать свой ИИ. Числа обозначают расстояние в блоках. Если вы выйдите из "зоны активации ИИ" - мобы не будут двигаться, подойдёте обратно - включат свой ИИ. Вот так это всё и работает.

animals: 16
monsters: 24
raiders: 48
misc: 8

mob-spawn-range - этот параметр регулирует радиус спавна мобов возле вас. Значение должно быть на единицу меньше от кол-ва чанков, которое вы выставили.

mob-spawn-range: 5

max-auto-save-chunks-per-tick - параметр замедляет частоту сохранения чанков. Не опускайте значение ниже 12, иначе некоторые чанки могут не сохраниться вообще.

max-auto-save-chunks-per-tick: 12

mob-spawner-tick-rate - тики моба, вызванного спавнером. Не поднимайте значение выше.

mob-spawner-tick-rate: 2

prevent-moving-into-unloaded-chunks - если игрок каким-то образом попал в незагруженный чанк - он постоянно будет проваливаться вниз (в пустоту), а когда сервер прогрузит чанки, он может с ним сыграть в злую шутку, не телепортировав игрока обратно. Игрок может просто умереть в пустоте. Чтобы такого не произошло, нужно включить данный параметр.

prevent-moving-into-unloaded-chunks: true

armor-stands-tick - выключив данный параметр, сервер не будет проверять стенды для брони.

armor-stands-tick: false

Заключение

После того, как вы проделали всё, что было написано в данной статье — проверьте стабильность и производительность сервера. Не лагает ли он? Для этого вам необходимо прописать эти команды: /mspt, /tps. Если после запуска сервера прошло 5-10 минут и максимальная цифра в mspt не превышает 150.0, а TPS варьируется в районе 19.8-20.0 — отлично, вы оптимизировали свой сервер. Поздравляю!

Сервер продолжает лагать. Что делать?

Скорее всего, вы либо что-то неправильно сделали, либо пропустили какой-то пункт из статьи. Если сервер продолжает лагать даже после оптимизации — время задуматься о деньгах, ибо вам нужно покупать больше мощностей.

Last updated