Оптимизация TPS на Minecraft-сервере: полный гайд
Что такое TPS и почему это важно
TPS (Ticks Per Second) - это пульс вашего Minecraft-сервера. Каждый тик - это один цикл обновления игрового мира: движение мобов, рост растений, обработка редстоуна, физика блоков, регистрация действий игроков. В идеале сервер выполняет 20 тиков в секунду, то есть каждый тик занимает не более 50 миллисекунд.
Когда TPS падает ниже 20, всё начинает тормозить. Мобы двигаются рывками, блоки ломаются с задержкой, игроки жалуются на "лаги сервера". При TPS 15 игра уже ощутимо неприятна. При TPS 10 и ниже сервер фактически непригоден для игры.
Важно понимать разницу между TPS и пингом. Пинг - это задержка сети между игроком и сервером. TPS - это производительность самого сервера. У игрока может быть идеальный пинг в 10ms, но если TPS сервера 12, лаги всё равно будут. И наоборот: сервер может держать стабильные 20 TPS, но игрок с плохим интернетом будет лагать из-за высокого пинга.
Главные причины низкого TPS
Прежде чем оптимизировать, нужно понять, что именно нагружает сервер. Вот самые частые причины.
Слишком много сущностей
Каждый моб, дропнутый предмет, стрела, лодка, вагонетка - это сущность, которую сервер обрабатывает каждый тик. Ферма с сотнями коров в одном загоне убивает TPS быстрее, чем что-либо другое. Дропнутые предметы, которые никто не подбирает, копятся и нагружают сервер.
Тяжёлые плагины
Не все плагины написаны одинаково хорошо. Некоторые выполняют сложные вычисления в основном потоке сервера, блокируя обработку тиков. Динамическая карта, сложные экономические плагины, плагины с частыми запросами к базе данных - всё это потенциальные убийцы TPS.
Загрузка чанков
Генерация новых чанков - одна из самых затратных операций. Когда несколько игроков одновременно исследуют новые территории, сервер должен генерировать десятки чанков в секунду. Это колоссальная нагрузка.
Редстоун
Сложные редстоун-механизмы, особенно часы (clock circuits) и большие системы, генерируют тысячи обновлений блоков за тик. Один игрок с бесконечным редстоун-часами может положить весь сервер.
Размер мира
Чем больше загруженных чанков, тем больше работы серверу. Каждый чанк содержит блоки, которые нужно обновлять: вода течёт, лава течёт, урожай растёт, мобы спавнятся.
Оптимизация Paper.yml / paper-global.yml
Paper (и его форки вроде Purpur) дают огромное количество настроек для оптимизации. Вот ключевые параметры.
Для Paper 1.19.4+ (paper-global.yml и paper-world-defaults.yml)
# paper-world-defaults.yml
# Уменьшаем дистанцию активации мобов
entities:
spawning:
despawn-ranges:
monster:
hard: 96
soft: 28
creature:
hard: 96
soft: 28
ambient:
hard: 64
soft: 28
# Ограничиваем спавн мобов
spawn-limits:
monsters: 50 # ванилла: 70
animals: 8 # ванилла: 10
water-animals: 3 # ванилла: 5
ambient: 1 # ванилла: 15
# Оптимизация чанков
chunks:
max-auto-save-chunks-per-tick: 8
delay-chunk-unloads-by: 10s
entity-per-chunk-save-limit:
experience_orb: 16
arrow: 8
item: 32
# Ограничение редстоуна
redstone-implementation: ALTERNATE_CURRENT
Ключевые настройки Purpur
Если вы используете Purpur (форк Paper с дополнительными оптимизациями):
# purpur.yml
settings:
dont-send-useless-entity-packets: true
world-settings:
default:
mobs:
zombie:
aggressive-towards-villager-when-lagging: false
villager:
lobotomize:
enabled: true # отключает сложный AI у застрявших жителей
Аудит плагинов: находим тяжёлые плагины
Слепая оптимизация конфигов не поможет, если у вас один плагин сжирает 60% серверного тика. Нужно найти виновника.
Spark - лучший инструмент профилирования
Установите плагин Spark. Это самый точный профайлер для Minecraft.
/spark profiler start # Начать профилирование
/spark profiler stop # Остановить и получить отчёт
/spark tps # Текущий TPS
/spark health # Общее состояние сервера
Spark покажет, какие плагины и какие конкретно операции занимают больше всего времени. Ищите плагины, которые занимают больше 10-15% серверного тика.
Timings (встроенный в Paper)
/timings on # Включить сбор данных
# Подождите 5-10 минут
/timings paste # Получить ссылку на отчёт
Отчёт Timings покажет каждый плагин и каждый обработчик событий с точным временем выполнения. Красные строки - это проблемные места.
Что делать с тяжёлым плагином
Если нашли плагин, который тормозит сервер, у вас три варианта: заменить его на более оптимизированный аналог, настроить его (увеличить интервалы обновления, отключить ненужные функции), или удалить, если он не критичен.
View Distance и Simulation Distance
Эти два параметра оказывают огромное влияние на производительность.
View Distance - сколько чанков вокруг игрока отправляется клиенту для отрисовки. Simulation Distance - сколько чанков вокруг игрока реально обрабатываются сервером (мобы, редстоун, рост растений).
# server.properties
view-distance=7 # ванилла: 10
simulation-distance=4 # ванилла: 10
Снижение simulation-distance с 10 до 4 - это сокращение обрабатываемой площади более чем в 6 раз. Эффект на TPS колоссальный.
Если игрокам важен красивый вид, можно держать view-distance повыше (7-8), а simulation-distance низким (4-5). Далёкие чанки будут видны, но не будут нагружать сервер.
Прегенерация мира
Генерация чанков на лету - дорогая операция. Решение: сгенерировать все чанки заранее.
Плагин Chunky делает это эффективно:
/chunky radius 5000 # Радиус в блоках от центра
/chunky start # Начать генерацию
/chunky pause # Пауза (если нужна)
/chunky continue # Продолжить
Генерируйте мир, когда на сервере мало игроков, или вообще в оффлайне. После прегенерации установите границу мира, чтобы игроки не уходили за пределы сгенерированной территории:
/worldborder set 10000 # Граница мира 10000 блоков
DDoS-атаки и TPS: скрытая связь
Вот о чём редко говорят в гайдах по оптимизации TPS: DDoS-атаки напрямую убивают производительность сервера, даже если не роняют его полностью.
Как атака влияет на TPS
При DDoS-атаке на Minecraft-сервер происходит следующее. Тысячи поддельных подключений забивают сетевой стек. Сервер тратит процессорное время на обработку фальшивых пакетов вместо игровых тиков. Бот-атаки создают сотни фейковых игроков, каждый из которых - нагрузка на сервер. Даже если атака не "ложит" сервер полностью, TPS проседает до 10-15, и игроки испытывают жуткие лаги.
Вы можете идеально настроить Paper, вычистить тяжёлые плагины, прегенерировать мир, но одна бот-атака обнулит все ваши усилия.
Как мы решаем эту проблему
В MineGuard мы фильтруем вредоносный трафик до того, как он достигнет вашего сервера. Наш фильтр отсекает ботов, фальшивые подключения и мусорные пакеты на сетевом уровне. Ваш сервер получает только легитимный трафик от настоящих игроков.
Результат: даже во время активной DDoS-атаки ваш сервер держит стабильные 20 TPS, потому что вся нагрузка от атаки ложится на наш фильтр, а не на ваше железо. Мы видели случаи, когда серверы с идеально настроенным Paper проседали до 5 TPS при бот-атаках, а после подключения нашей защиты держали стабильные 19.9-20.0 даже под атакой.
Мониторинг TPS: держим руку на пульсе
Оптимизация - это не разовое действие. Нужно постоянно следить за состоянием сервера.
Spark для постоянного мониторинга
/spark tps # Текущий TPS (1m, 5m, 15m)
/spark health # CPU, память, TPS в одном отчёте
/spark profiler start --timeout 300 # Профилирование на 5 минут
Запускайте профилирование в часы пиковой нагрузки, чтобы поймать реальные проблемы.
Автоматические алерты
Настройте уведомления о падении TPS. Многие панели управления (Pterodactyl, AMP) поддерживают это из коробки. Если у вас кастомная настройка, используйте плагин, который отправляет webhook в Discord при падении TPS ниже порога.
На что смотреть
- TPS 19.5-20.0 - отлично, сервер работает идеально
- TPS 18.0-19.5 - нормально, незначительные просадки
- TPS 15.0-18.0 - нужна оптимизация, игроки начинают замечать лаги
- TPS ниже 15.0 - серьёзные проблемы, нужно срочно разбираться
Чек-лист оптимизации
Подведём итог. Пройдитесь по этому списку:
- Обновите ядро до Paper или Purpur последней версии
- Настройте paper-world-defaults.yml: лимиты мобов, despawn-ranges, ALTERNATE_CURRENT
- Установите simulation-distance 4-5, view-distance 7-8
- Прегенерируйте мир через Chunky и установите границу
- Проведите аудит плагинов через Spark - найдите и замените тяжёлые
- Ограничьте сущности: лимиты на фермы, автоочистка дропа
- Подключите DDoS-защиту, чтобы атаки не влияли на TPS
- Настройте мониторинг TPS через Spark
- Регулярно проверяйте Timings-отчёты после обновлений плагинов
TPS-оптимизация - это комплексный процесс. Нет одной волшебной настройки, которая всё исправит. Но если системно пройтись по каждому пункту, разница будет огромной. Серверы, которые стабильно держат 20 TPS, удерживают игроков. Серверы с лагами - теряют их.
Protege tu servidor contra ataques DDoS
Protección gratuita con configuración en 5 minutos. 1 TB de tráfico incluido.
Probar gratisArtículos relacionados
Skript: основы скриптинга для админов Minecraft серверов (2026)
Skript позволяет писать логику сервера на почти английском языке без Java. Установка, синтаксис, события, команды, переменные, аддоны skBee и skript-yaml, типичные ошибки и как их избежать.
Защита Minecraft-сервера от сканирования портов
Как работает сканирование портов, какие инструменты используют атакующие для поиска Minecraft серверов, и как защитить свой сервер от разведки. Nmap, masscan, Shodan, iptables rate limiting, port knocking и DDoS-прокси.
ViaVersion + ViaBackwards: поддержка всех версий Minecraft на одном сервере
Полный гайд по ViaVersion, ViaBackwards и ViaRewind: как держать сервер 1.21 с клиентами от 1.8, матрица поддержки, установка на Paper и Velocity, производительность и частые ошибки.