[Гайд] Оптимизация майнкрафт сервера — Прощайте, лаги!

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

Исходя из анализа обращений в Техническую Поддержку майнкрафт хостинга majorcore.com можно сделать вывод, что вторым по популярности является вопрос тематики « Лагает сервер ». Используя свой 7-ми летний опыт эксплуатации майнкрафт серверов, мы решили создать эту статью, в которой подробно расскажем и покажем нашим клиентам, как можно оптимизировать свой майнкрафт сервер и избавиться от надоедливых лагов / вылетов. Начнём!

Помнить про память (ОЗУ)

Ещё в самом начале этой статьи мы говорили о том, что все ядра майнкрафт серверов написаны на Java — одном из самых ресурсоёмких в отношении памяти языков программирования. Перед продолжением прочтения статьи проверьте своё количество памяти и версию сервера: Если у вас стоит ядро версии 1.15.2 / 1.14.4, но при этом у вас куплено всего 700мб памяти — дальнейшее прочтение статьи бессмысленно, т.к эти версии для стабильной работы требуют минимум 2гб ОЗУ.

Методы решения:
  • Докупить память (На нашем хостинге можно просто сменить тариф, но за это спишутся дни аренды вашего сервера)
  • Сменить версию сервера (Оптимальная версия - 1.12.2)
Удалить нагружающие плагины

Вы же всё ещё помните про то, что java — прожорливый на память язык программирования, который лопает ОЗУ так, как наша Тех. Поддержка лопает свежевыпеченную пиццу и бургеры? Кажется, майнкрафт сервер нельзя сделать ещё более ресурсов… А, нет. Можно :) Используя кривые плагины, можно нагрузить сервер и забить память так, что ваш сервер уйдёт в продолжительную медитацию до тех пор, пока вы его не перезапустите. Сейчас мы перечислим самые нагружающие плагины, которые угробят TPS* на вашем сервере:

  • CoreProtect - Полезный плагин, который логирует все действия игроков, и в любую секунду позволит откатить назад снесённый дом. На первый взгляд - рай для администраторов и ад для гриферов. Ан нет, друзья. Ад наступит здесь как раз для администрации и для обычных игроков (Ну и для гриферов тоже :) ), т.к ваш TPS быстренько спустится до нуля - данный плагин просто каждую миллисекунду производит манипуляции с файлом, вес которого может достигать до !100ГБ! при достаточно высоком онлайне. От таких событий с диском ваш сервер попросту не сможет прогружать карту, сохранять мир и выполнять т.п манипуляции - это и будет причиной фатального падения TPS.
  • MultiWorld, Multiverse Core - Плагины, которые добавляют на сервер возможность создания мульти-миров. Давайте обойдёмся без слов и просто посмотрим на цифры: Каждый мир будет потреблять минимум 200мб ОЗУ при НУЛЕВОМ онлайне. А что будет при онлайне от 10? Что будет с диском, который забьётся кучей данных, которые несут в себе эти миры? Стоп... А с процессором то что будет? Ему всё это просчитывать и обрабатывать. Добавлено лично от администратора: Эти плагины - полный колхоз. НИ один популярный сервер их не используют. Все давно перешли на BungeeCord - систему, которая позволяет связывать майнкрафт сервера между собой, организовывая системы лобби, нескольких миров выживания и мини-игр.
  • AutoSaveWorld и ему подобные плагины попросту бесполезны — их функция есть в файле bukkit.yml, но об этом позже.
  • Непонятные плагины, скачанные с пабликов ВКонтакте, ютуба и BlackSpigotMc. Мало того, что эти плагины написаны непонятно кем, непонятно на чём, непонятно, насколько они могут быть кривыми. Но добавляет ужаса сюда то, что эти плагины могут не только лагать, но и открывать лёгкую лазейку для сноса вашего сервера — в подобные плагины нередко вшиваются хаки и бэкдоры. Нет, серьёзно. Зачем кому-то за бесплатно сливать премиум-плагины? Пожалуйста, используйте критическо мышление и думайте только своей головой.
  • Думаю, стоит напомнить и о модах, ведь они тоже написаны на java, тоже имеют мульти-миры. Очень мало на данный момент осталось серверов с модом DivineRPG, т.к он просто по-адски расходует ресурсы сервера, нагружая всё. Просто вспомните летсплеи ютуберов: У них в ОДИНОЧНОЙ игре багаются и вылетают подобные моды. Что же с этими модами будет происходить на сервере с 2+ игроками?
  • SkinsRestorer — заменяем на Custom Skins Manager. Будет меньше нагрузки.
    https://www.spigotmc.org/resources/custom-skins-manager.57760/
Методы решения:
  • Все плагины и моды для своего сервера стоит скачивать только с официальных источников: https://bukkit.org/, https://www.spigotmc.org/, https://www.curseforge.com/
  • Удалить CoreProtect и MultiWorld / MultiVerse
  • Если всё же решитесь играть с этим модом, запаситесь ОЗУ. Она вам пригодится.
Основная часть — настройка основных конфигов майнкрафт сервера

Если вы клиент нашего хостинга (majorcore.com), то просто открываем панель управления > Web FTP > Жмём на нужные нам файлы, о них ниже:
(Если вы стоите на другом хостинге, то вам придётся качать сторонние программы на подобии FileZilla client).

Файл bukkit.yml — открываем нажатием. Все значения ставим так, как они указаны ниже:
spawn-limits:
monsters: 35
animals: 10
water-animals: 3
ambient: 1

Устанавливаем лимиты спавна мобов. Если вам не нужны летучие мыши вообще, то можете поставить ambient на 0.

ticks-per:
animal-spawns: 400
monster-spawns: 3
autosave: 16000

autosave — параметр, который отвечает за авто-сохранение. Да, он встроен прямо в ядро сервера. Лишние плагины вам не нужны.

chunk-gc:
period-in-ticks: 600
load-threshold: 300

Включаем авто-очистку неактивных чанков. Заметно улучшает производительность. Если у вас нет второй строки (load) — не добавляйте её.

auto-updater:
  enabled: false

Отключаем авто-обновление плагинов. Вам знакома ситуация, когда вы заходите на сервер, а некий плагин не работает? Всё из-за того, что у вас была включена данная функция. Ну и чуть производительности нам не помешает.

С файлом bukkit всё, переходим к файлу spigot.yml (Ставим всё так, как указано ниже)
nerf-spawner-mobs: true

Находим этот параметр, ставим на true. (Подсказка: Для поиска можно использовать сочетание клавиш Ctrl + F).
Данный параметр значительно снизит нагрузку от спавнеров мобов.

entity-activation-range:
animals: 8
monsters: 10
misc: 2

Оптимизируем дистанцию, снижая дистанцию, с которой будут активироваться сущности. Большой + к производительности сервера.

ticks-per:
hopper-transfer: 24
hopper-check: 24
hopper-amount: 3

Оптимизируем воронки (передачу предметов по ним)

max-entity-collisions: 1

Снижаем количество мобов, которые могут появиться на 1 блоке.

merge-radius:
item: 4
exp: 6

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

Оптимизация основных файлов сервера завершена. Мы успешно снизили количество мобов, дистанцию трекинга и оптимизировали энтити.

Ограничиваем размер мира.

Размер мира является ключевым параметром, который влияет на производительность вашего майнкрафт сервера. Как ограничить мир?

/worldborder center ~ ~

Прописываем эту команду на спавне, стоя на блоке. Далее:

/worldborder set 18000

Всё, мир ограничен. Данного показателя хватит даже для самых крупных серверов.

Подведём итоги

Используя данный гайд, вы успешно оптимизировали свой майнкрафт сервер, снизили размер мира, удалили нагружающие плагины, спасли место на диске. После перезапуска ваш сервер должен заработать, как новенький.
Пожалуйста, цените свой сервер! Его стабильность на 99% зависит от вас.

966 views·16 shares