ForumMillida
Войти
Гайды

Как убрать лаги на сервере Майнкрафт и поднять TPS

Как убрать лаги на сервере Майнкрафт и поднять TPS

Если сервер лагает и TPS проседает ниже 20 — в 90% случаев виноваты три вещи: завышенный view-distance, тяжёлые плагины или неоптимальный спавн сущностей. Исправить это можно за 20–30 минут без перехода на новое железо.

Что такое TPS и почему он важнее пинга

TPS (Ticks Per Second) — это количество игровых тиков в секунду. Нормальное значение — ровно 20. При 20 TPS мир живёт: мобы двигаются, редстоун работает, дроп не зависает. Как только TPS падает до 15 и ниже — всё начинает тормозить даже при хорошем пинге. Игрок с пингом 10 мс будет чувствовать резину, потому что сервер просто не успевает обрабатывать тики.

Проверить TPS прямо сейчас можно командой в консоли:

/tps

На Paper и Purpur она встроена. На Spigot — тоже. Vanilla и Forge — только через плагины или моды типа spark.

Шаг 1 — найти виновника через /timings или spark

Прежде чем трогать настройки вслепую, нужно понять, что именно жрёт сервер. Два инструмента:

  • Встроенный /timings (Paper): введи /timings report в консоли, получишь ссылку на веб-отчёт. Смотри колонку «% of tick» — всё выше 5% заслуживает внимания.
  • Плагин spark (Modrinth/SpigotMC): более современный, работает на Paper, Fabric, Forge. /spark profiler start → подождать 2–5 минут нагрузки → /spark profiler stop. Даёт подробный flamegraph с разбивкой по плагинам и чанкам.
  • Команда /lagg check (плагин ClearLagg) — быстрая сводка по количеству сущностей на мире. Если сущностей > 5000 на мир — это уже проблема.

Шаг 2 — server.properties: первые три параметра, которые меняют всё

Открывай файл server.properties в корне сервера. Три параметра дают наибольший эффект:

  • view-distance — дальность прогрузки чанков. Дефолт 10, реально нужно 6–8. Каждый лишний чанк в радиусе = квадратичный рост нагрузки. На слабом VPS ставь 5–6, на выделенном сервере с 8+ ГБ ОЗУ — до 8.
  • simulation-distance — дальность симуляции (фарм, редстоун, мобы). Дефолт 10, достаточно 4–6. Не путай с view-distance: можно видеть чанки далеко, но не симулировать их.
  • max-tick-time — таймаут перед падением сервера. Дефолт 60000 мс (60 сек). Если сервер падает от lag spike, а не реально висит — поставь -1 (отключить watchdog). Но сначала разберись с причиной лагов, а не маскируй симптом.
Параметры view-distance и simulation-distance в server.properties
view-distance=6 и simulation-distance=4 — отправная точка для сервера с ограниченными ресурсами. Источник: официальная документация Minecraft.

Шаг 3 — paper.yml и bukkit.yml: лимиты на сущности и спавн

Paper даёт тонкую настройку. Открывай paper-world-defaults.yml (Paper 1.19+) или paper.yml (старые версии):

  • spawn-limits в bukkit.yml: снизь monsters до 50–70 (дефолт 70 — уже норм, но на слабом железе — 40). Ambient (летучие мыши) поставь 1 или 0 — они бесполезны и едят тики.
  • mob-spawn-range в paper: уменьши с 8 до 5–6. Мобы будут спавниться ближе к игрокам, нагрузка падёт.
  • per-player-mob-spawns: true — распределяет спавн между игроками, а не суммирует. Обязательно включи если на сервере больше 10 человек.
  • alt-item-despawn-rate в paper: можно ставить быстрый деспавн на мусор (земля, булыжник). Например, COBBLESTONE: 300 тиков вместо 6000. Сильно сокращает количество entity на мире после гриндинга.
per-player-mob-spawns: true

Шаг 4 — Java-флаги запуска: G1GC и Aikar's flags

Minecraft — Java-приложение, и сборщик мусора (GC) напрямую влияет на лаг-спайки. Стандартный запуск без флагов даёт нерегулярные паузы по 200–500 мс. Флаги Aikar — стандарт индустрии для Minecraft-серверов:

java -Xms4G -Xmx4G -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -jar server.jar nogui

-Xms и -Xmx ставь одинаково (например, 4G на 4G) — это убирает динамическое выделение памяти, которое само по себе вызывает паузы. Не выделяй больше 70–75% от физической RAM сервера.

Flamegraph spark профайлера после оптимизации сервера Minecraft
После применения Aikar's flags пики GC на flamegraph spark значительно сокращаются. Источник: spark.lucko.me.

Шаг 5 — плагины: аудит и замена тяжёлых

Каждый плагин — потенциальный источник лагов. После /timings или spark сразу видно, кто виноват. Несколько правил:

  • WorldGuard с сотнями регионов может серьёзно нагружать сервер. Проверь количество регионов командой /rg list — если их тысячи, оптимизируй структуру.
  • ClearLagg с авто-клиром каждые 3 минуты сам создаёт лаг-спайк в момент клира. Лучше настроить alt-item-despawn-rate в Paper и убрать агрессивный авто-клир.
  • Плагины с async-задачами (асинхронные операции с БД) почти всегда безопасны. Проблема — синхронные плагины, которые вешают операции прямо в тик.
  • Dynmap и BlueMap рендерят карту мира в реальном времени — это тяжело. Переведи рендер на ночное время или в async-режим, либо рендери только по команде.
Millida RatingБесплатный рейтинг Minecraft-серверов — поднимай проект в топ и получай новых игроков.Открыть рейтинг

Частые вопросы про лаги и TPS

Почему TPS 20, но игроки всё равно жалуются на лаги?

TPS и пинг — разные вещи. TPS 20 говорит, что сервер обрабатывает тики вовремя. Но если у игрока высокий пинг (сеть) или слабый ПК (клиентские FPS) — лаги будут независимо от TPS. Проверяй пинг командой /ping <ник> и смотри на железо игроков.

Нужно ли переходить с Spigot на Paper ради TPS?

Да, и это один из самых быстрых способов поднять TPS без смены железа. Paper включает десятки оптимизаций, которых нет в Spigot: асинхронную обработку чанков, улучшенный AI мобов, alt-item-despawn-rate и многое другое. Миграция с Spigot на Paper — совместима полностью, плагины переедут без изменений.

Сколько RAM нужно на сервер с 20 игроками?

Минимум 4 ГБ для ванильного/Paper-сервера с 20 игроками и умеренным набором плагинов. С тяжёлыми плагинами (Dynmap, RPG-системы, большие мировые генераторы) — 6–8 ГБ. Никогда не выделяй больше 75% физической RAM — операционная система тоже ест память.

Помогает ли SSD против лагов?

Да, но только для конкретного типа лагов — медленной загрузки чанков. Если игроки жалуются на зависание при перемещении в новые чанки — SSD ускорит загрузку в 3–5 раз по сравнению с HDD. На TPS от плагинов и сущностей SSD влияет минимально.

Оптимизация сервера — это не разовая акция, а привычка. Раз в месяц запускай spark или /timings после обновления плагинов, следи за ростом количества сущностей и не забывай обновлять Java-флаги при смене версии JDK. Даже слабый VPS держит 20–30 игроков при правильной настройке. Если хочешь, чтобы твой сервер нашли новые игроки — добавь его в рейтинг Millida и настрой автодонат через Millida Trade.

серверлагиtpsоптимизацияадминистрированиеpaperspigot

Похожие статьи

Комментарии 0