НОВОЕ 📢 Ограниченное стартовое предложение: скидка до 70% на первый месяц для любой игры!Посмотреть тарифы

Как уменьшить лаги на сервере Minecraft

MinecraftUpdated Oct 23, 20267 min read

Лаги на сервере Minecraft бывают трёх видов, и исправляют их по-разному. Прежде чем что-то менять, выясните, какие лаги у вас.

Что видят игрокиВид лаговГде искать
Блоки появляются заново, мобы дёргаются, всё замедляется у всехЛаги сервера: сервер не успевает завершить работу вовремяЭто руководство
Высокий пинг, запоздалые удары, но игра идёт плавноЛаги сети: расстояние между игроком и серверомГде работает ваш сервер и как устроена локация
Низкий FPS только у одного игрокаЛаги клиента: собственный компьютер этого игрокаСобственные настройки игрока

Как сервер считает время

По данным Minecraft Wiki, игра работает на скорости 20 тиков в секунду, один тик каждые 50 миллисекунд. Сервер может держать 20 тиков в секунду (TPS), только если каждый тик занимает 50 миллисекунд или меньше (MSPT, миллисекунды на тик). Когда он отстаёт, TPS падает, и именно это чувствуют игроки. Minecraft Wiki называет обычные причины: воронки, которые постоянно ищут предметы, редстоун с большим числом обновлений блоков, большое число мобов и высокая скорость случайных тиков.

В документации Paper добавлено, что основной цикл игры работает в одном потоке. Поэтому высокая скорость одного ядра важнее числа ядер, а больше памяти медленный тик не исправит.

Шаг 1: измерьте

  1. Откройте страницу Обзор вашего сервера и посмотрите на Использование. Делайте это при игроках онлайн, потому что простаивающий сервер всегда выглядит здоровым. См. Как читать графики использования сервера. Если CPU упирается в предел, пока игроки на сервере, серверу не хватает вычислительной мощности.
  2. Следите за Console. Сообщение Can't keep up! Is the server overloaded? означает, что тик занял слишком много времени.
  3. На Paper откройте Console и введите spark tps, чтобы увидеть тики в секунду. В документации Paper сказано, что Paper 1.21 и новее включают профайлер spark. Чтобы найти, что работает медленно, введите spark profiler start --timeout 300, спокойно играйте пять минут и откройте ссылку, которую выведет Console. В отчёте показано, какие плагины и какие части игры заняли больше всего времени. На Fabric, Forge или NeoForge spark это мод, который добавляется на вкладке Моддинг. См. Как установить моды на Forge, Fabric и NeoForge.

Меняйте что-то одно, перезапускайте и измеряйте снова, чтобы знать, что помогло.

Шаг 2: снизьте стоимость мира

Эти настройки помогают на любом типе сервера. Откройте Настройки, затем Server Properties (Java). См. Свойства сервера Minecraft: разбор настроек.

НастройкаЧто она меняетЧем вы платите
Дальность прорисовки (по умолчанию 10)Сколько чанков сервер отправляет каждому игрокуИгроки видят не так далеко. Панель отмечает, что это одна из самых затратных настроек.
Дальность симуляции (по умолчанию 10)На каком расстоянии от игрока продолжают работать мобы, посевы и редстоунФермы и механизмы останавливаются, когда вы дальше этого расстояния
Дальность прорисовки сущностей (по умолчанию 100)На каком расстоянии сущности отправляются игрокам, в процентахМобы и животные появляются ближе к игроку
Радиус границы мираКак далеко могут уходить игрокиИгроки не могут исследовать за ней. Исследование заставляет сервер генерировать новую местность, а это тратит вычислительную мощность.

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

Шаг 3: обуздайте мобов, предметы и воронки (Paper, Purpur, Spigot)

У Paper и его форков больше настроек, чем у Vanilla. Строки для Bukkit Settings и Spigot Settings относятся к Paper, Purpur и Spigot. Строки для Paper's World Settings есть только на Paper и Purpur, но не на Spigot. Они находятся в разделе Настройки, в списке слева, после того как сервер хотя бы раз запустился. На каждой странице есть строка поиска. Нажмите Только сохранить, затем перезапустите. Храните бэкап любого файла, который редактируете вручную. См. Как сделать бэкап, восстановить и сбросить мир Minecraft.

Значения по умолчанию ниже взяты из документации Paper.

Страница и настройкаПо умолчаниюЧто она меняетЧем вы платите
Bukkit Settings, spawn-limits (монстры, животные и другие)70 монстров, 10 животныхСколько мобов каждого вида существует на игрока, прежде чем спавн прекращаетсяМобов меньше. Фермы мобов дают меньше.
Bukkit Settings, ticks-per (monster-spawns, animal-spawns)1 для монстров, 400 для животныхЧисло тиков между попытками спавнаМобы появляются позже и в меньшем числе
Spigot Settings, entity-activation-range (animals, monsters, villagers, misc)32 для животных, 32 для монстров, 32 для жителей, 16 для прочихНасколько близко к игроку должна быть сущность, чтобы действовать на полной скоростиДалёкие мобы замирают или действуют медленно. Фермы вдали от вас замедляются.
Spigot Settings, merge-radius для item и exp0.5 и выключеноНасколько близко выпавшие предметы и сферы опыта объединяются в однуПредметы объединяются охотнее
Spigot Settings, hopper-transfer и hopper-amount8 тиков, 1 предметКак часто и сколько перемещает воронкаВоронки-часы и сортировщики меняют скорость
Paper's World Settings (только Paper и Purpur), environment.optimize-explosionsвыключеноКеширует поиск сущностей во время взрывовРезультаты немного отличаются от Vanilla. TNT лагает меньше.
Paper's World Settings (только Paper и Purpur), misc.redstone-implementationVANILLAДвижок редстоуна. В меню есть вариант Alternate Current.Другой движок может изменить поведение редких механизмов
Paper's World Settings (только Paper и Purpur), hopper.disable-move-eventвыключеноПрекращает сообщать плагинам о передаче предметов воронкамиПлагины, которые следят за воронками, перестают работать
Paper's World Settings (только Paper и Purpur), chunks.entity-per-chunk-save-limitчисло для каждого типа сущностей, где -1 означает отсутствие лимита. В документации Paper для сфер опыта указано -1Ограничивает, сколько сущностей одного вида, например стрел, сохраняется в чанкеЛишние сущности в чанке не сохраняются

Копирование длинного списка настроек из видео или с форума это частая причина сломанных ферм. Меняйте настройку только тогда, когда профайлер указывает на то, чем она управляет.

Шаг 4: проверьте плагины и моды

Причиной лагов часто бывает один плагин или мод. Отчёт spark из шага 1 покажет, какой именно. Затем:

  1. Обновите его. Старые версии частая причина. См. Как установить плагины на Paper, Spigot и Purpur.
  2. Проверьте его собственные настройки на параметры, которые сканируют мир, например проверки больших привилегий или очистки.
  3. Если он не нужен, удалите его. В документации Paper советуют удалять плагины половинами, чтобы найти виновника среди многих.

Шаг 5: посмотрите на сам мир

Minecraft Wiki называет воронки, редстоун и большое число мобов обычными причинами медленного тика. Достаточно одной большой постройки, например огромной фермы мобов или длинных редстоун-часов. Профайлер показывает, когда это так. Тогда можно перестроить её меньше, распределить или выключать, когда ею никто не пользуется. Много животных в одном маленьком загоне тоже обходятся дороже, чем те же животные, распределённые по большей площади, поэтому разредите оживлённые загоны.

Когда дело в тарифе

Если CPU упирается в предел при малом числе игроков, а профайлер не показывает одного виновника, возможно, ваш тариф слишком мал для того, что вы запускаете. Серверам с модами и большим модпакам нужно намного больше, чем обычному серверу. См. Сколько RAM нужно серверу Minecraft и Как сменить тариф или расчётный период.

Folia, форк Paper, распределяет работу по ядрам CPU. Большинство плагинов его не поддерживает, поэтому сначала проверьте свои плагины. Смена типа сервера по умолчанию удаляет файлы. См. Как сменить версию Minecraft или тип сервера.

См. также

Ваш сервер уже у другого хостинга? Перенесите его к нам

СОЗДАЙТЕ СВОЙ ИГРОВОЙ СЕРВЕР
ГОТОВЫ НАЧАТЬ?

Сэкономьте до 30% на вашем новом игровом сервере.
Премиальная производительность, мгновенная активация и непревзойдённая надёжность по лучшей цене.

ПОСЛЕДНИЕ БЛОГИ