TPS ниже 20, задержки при открытии сундуков, рывки при передвижении - эти симптомы указывают на нехватку ресурсов процессора или оперативной памяти. Главные враги стабильной работы: избыточные сущности (мобы, дроп), тяжелые плагины, неоптимизированная загрузка чанков и редстоун-механизмы. Решение - связка из профилировщика Spark и очистителя ClearLag, дополненная правильной настройкой ядра Paper.
Это руководство дает готовые конфигурации для серверов выживания с онлайном до 50 игроков. Вы узнаете, как настроить автоматическую очистку предметов без вреда для ферм, найти плагин, съедающий 15% тика, и стабилизировать TPS на уровне 20 даже в часы пиковой нагрузки.
Почему ваш сервер тормозит: главные враги производительности
TPS (ticks per second) - частота обновления игрового мира. Норма - 20 тиков в секунду. Падение до 15 TPS означает, что игровой процесс замедляется на 25%: мобы двигаются рывками, разрушение блоков происходит с задержкой. MSPT (milliseconds per tick) - время обработки одного тика. Лимит - 50 мс. Если сервер тратит на тик 60 мс, TPS падает до 16.6.
Основные источники нагрузки по убыванию влияния на MSPT:
- Сущности. 1000+ мобов или предметов в загруженных чанках увеличивают MSPT на 15-25 мс. Каждая корова, зомби или выброшенный блок требуют расчета физики, поиска пути и проверки условий спавна.
- Плагины. Неоптимизированный код, частые обращения к базе данных, синхронные операции с диском. Плагин экономики с 5000 аккаунтов может создавать 30-40 мс нагрузки при каждом запросе.
- Генерация чанков. Когда игрок летит на элитрах, сервер генерирует 10-20 чанков в секунду. Это забирает 40-60% CPU.
- Редстоун. Часы, раздатчики, сложные схемы. Одна невыключенная редстоун-схема с 200 элементами добавляет 2-5 мс к тику.
Диагностика начинается с профилирования. Spark показывает, какой плагин или механика потребляет ресурсы. ClearLag убирает последствия - лишние сущности. Без профилирования очистка дает временный эффект, без очистки профилирование не решает проблему накопления дропа.
С чего начать: подготовка сервера и выбор ядра
Перед установкой плагинов настройте ядро. Неправильные параметры в paper.yml и spigot.yml сводят на нет эффект от ClearLag и Spark. Сервер с view-distance=12 и mob-spawn-range=8 будет терять TPS даже при идеальной очистке сущностей.
Paper vs Spigot: что выбрать для максимальной производительности
Paper - форк Spigot с асинхронной загрузкой чанков, оптимизированным редстоуном и встроенными патчами. В 2026 году Paper поддерживает все актуальные плагины Bukkit/Spigot и показывает на 20-40% меньше MSPT при одинаковой нагрузке.
Сравнение на тестовом сервере с 40 игроками и 50 плагинами:
| Параметр | Spigot | Paper |
|---|---|---|
| Средний MSPT | 38 мс | 24 мс |
| TPS при пиковой нагрузке | 17-18 | 19.5-20 |
| Время загрузки чанков | синхронное, блокирует тик | асинхронное, не влияет на тик |
| Потребление RAM | 4.2 GB | 3.8 GB |
Spigot используйте только для устаревших плагинов, не обновлявшихся с 2022 года. Во всех остальных случаях Paper - стандарт. Если нужна еще более агрессивная оптимизация, рассмотрите Purpur - форк Paper с дополнительными патчами. Подробное сравнение ядер - в гайде по выбору ядра для Minecraft-сервера.
Ключевые настройки ядра перед установкой плагинов
Откройте paper.yml в папке сервера. Измените параметры:
- view-distance: 6-8. Определяет радиус загрузки чанков вокруг игрока. Снижение с 10 до 6 уменьшает количество загруженных чанков на 40% и MSPT на 5-8 мс. Игроки видят туман на расстоянии 96 блоков вместо 160 - приемлемо для выживания.
- mob-spawn-range: 3-4. Радиус спавна мобов от игрока. Значение 4 вместо 8 сокращает количество активных мобов вдвое. Фермы продолжают работать, если игрок находится рядом.
- item-despawn-rate: 300-400. Время жизни выброшенных предметов в тиках (20 тиков = 1 секунда). По умолчанию 6000 (5 минут). Снижение до 400 (20 секунд) убирает накопление дропа после массовых смертей мобов.
В spigot.yml проверьте entity-activation-range. Paper автоматически оптимизирует этот параметр, но если используете Spigot, установите вручную: для мобов - 16, для животных - 12, для водных существ - 8. Сущности за пределами радиуса активации не обрабатывают физику и не ищут путь, что экономит до 10 мс MSPT.
ClearLag: умная очистка сущностей без вреда для геймплея
ClearLag удаляет скопления предметов и лишних мобов по расписанию. Плагин решает проблему накопления дропа с ферм и бесконтрольного размножения животных, но требует тонкой настройки. Агрессивная очистка ломает механику: игрок теряет дроп с убитого босса, жители исчезают из торговых залов, рамки и картины пропадают.
Установка и базовая настройка ClearLag
Скачайте ClearLag с официальной страницы плагина, поместите JAR-файл в папку /plugins, перезапустите сервер. После запуска появится папка /plugins/ClearLag с файлом config.yml.
Ключевые параметры для первого запуска:
auto-removal:
enabled: true
seconds: 600 # очистка каждые 10 минут
warning-time: 15 # предупреждение за 15 секунд
remove-bosses: false # не удалять боссов (Wither, Elder Guardian)
remove-named-mobs: false # не удалять именованных мобов
remove-entities:
- DROPPED_ITEM
- ARROW
- BOAT
Параметр remove-bosses: false защищает визеров и древних стражей. remove-named-mobs: false сохраняет мобов с именными бирками - игроки не теряют питомцев. Список remove-entities указывает типы сущностей для удаления. Начните с предметов, стрел и лодок - они создают 80% мусора.
Тонкая настройка лимитов и исключений
Раздел limits в config.yml задает максимальное количество сущностей на чанк до принудительной очистки:
limits:
enabled: true
max-mobs-per-chunk: 30
max-items-per-chunk: 50
whitelist:
- VILLAGER
- ARMOR_STAND
- ITEM_FRAME
- PAINTING
max-mobs-per-chunk: 30 - при превышении лишние мобы удаляются, начиная с самых дальних от игрока. Жители в белом списке не затрагиваются - торговые залы работают. Стойки для брони защищены от удаления, что важно для декоративных построек и механизмов на основе Armor Stand.
Для сервера с редстоун-фермами добавьте в белый список типы сущностей, используемых в механизмах: MINECART, MINECART_HOPPER. Исключите CHICKEN из автоматической очистки, если игроки используют куриные фермы для получения опыта.
Расписание очисток и оповещения игроков
Настройте разные интервалы для предметов и мобов. Предметы безопасно удалять каждые 5-10 минут, мобов - раз в час. В config.yml:
item-removal:
enabled: true
interval: 300 # 5 минут
warning: 10 # предупреждение за 10 секунд
mob-removal:
enabled: true
interval: 3600 # 60 минут
warning: 30
Сообщения настраиваются в messages.yml. Добавьте цветовое форматирование и уведомление в чат:
warning-message: "&e[Очистка] &fПредметы будут удалены через &c{seconds} &fсекунд!"
removal-message: "&a[Очистка] &fУдалено &c{amount} &fпредметов."
ClearLag интегрируется с плагинами на чат (LuckPerms, PlaceholderAPI). Игроки видят предупреждения и успевают подобрать ценный дроп. Для серверов с мини-играми отключите очистку в аренных зонах через флаг региона WorldGuard.
Spark: профилирование и поиск узких мест
Spark - инструмент для профилирования CPU и памяти на серверах Paper и Spigot. Плагин показывает, сколько времени каждый метод каждого плагина занимает в тике. Без Spark администратор гадает, с Spark - видит точные цифры. Полное руководство по профилированию - в статье о мониторинге производительности Minecraft.
Установка Spark и первый запуск профилировщика
Установите плагин стандартным способом: JAR-файл в /plugins, перезапуск. После загрузки выполните команду для запуска профилировщика на 5 минут:
/spark profiler start --timeout 300
Через 5 минут профилировщик остановится автоматически и выдаст ссылку на веб-отчет. Откройте ссылку в браузере. Sampling interval по умолчанию - 4 мс. Это означает, что Spark опрашивает стек вызовов каждые 4 миллисекунды. Чем меньше интервал, тем точнее данные, но выше нагрузка на сервер во время профилирования (добавляет 1-2 мс MSPT).
Анализ отчета: как найти проблемный плагин
В веб-отчете перейдите на вкладку «Call tree». Сортировка по столбцу «Self Time» показывает методы, которые потребляют больше всего процессорного времени. Self Time - время выполнения кода внутри самого метода, без учета вызовов других методов.
Пример: плагин экономики вызывает метод savePlayerData() с Self Time 12%. Это означает, что 12% времени каждого тика (6 мс из 50 мс) уходит на сохранение данных игроков. Причина - синхронная запись в SQLite на главном потоке. Решение: заменить плагин на аналог с асинхронной записью или подключить внешнюю базу данных.
Другой частый случай: PlayerMoveEvent обрабатывается 2000 раз в секунду и занимает 8% тика. Плагин, подписанный на это событие, выполняет тяжелые проверки при каждом движении игрока. Найдите плагин в дереве вызовов и проверьте его конфигурацию на предмет отключения избыточных проверок.
Мониторинг TPS и памяти в реальном времени
Spark предоставляет команду для быстрой диагностики без запуска полного профилировщика:
/spark healthreport
Отчет включает текущий TPS, использование памяти (heap), количество загруженных чанков и сущностей. Настройте автоматическую отправку отчета при падении TPS ниже 18:
/spark healthreport --threshold 18 --webhook https://discord.com/api/webhooks/...
При падении TPS Spark отправит сообщение в Discord-канал администраторов. Это позволяет реагировать на проблемы до жалоб игроков. Настройка интеграции с Prometheus и Zabbix описана в гайде по мониторингу серверов Minecraft.
Дополнительные плагины для комплексной оптимизации
ClearLag и Spark решают 70% проблем с производительностью. Оставшиеся 30% - специфические случаи: лаги при исследовании мира, перегрузка от автоматических ферм, деградация TPS из-за жителей. Три плагина закрывают эти сценарии.
Chunky: предгенерация чанков для плавной игры
Когда игроки исследуют новые территории, сервер генерирует чанки в реальном времени. Генерация одного чанка занимает 50-200 мс. При полете на элитрах со скоростью 30 блоков в секунду сервер генерирует 10-15 чанков в секунду - MSPT подскакивает до 100+ мс, TPS падает до 10.
Chunky предгенерирует мир в заданном радиусе. Установите плагин и выполните:
/chunky start --world world --radius 5000
Генерация мира радиусом 5000 блоков создает около 800 000 чанков. Процесс занимает 2-4 часа на выделенном сервере и загружает CPU на 80-100%. Запускайте генерацию ночью при минимальном онлайне. После завершения игроки перемещаются по предгенерированной территории без лагов. Для новых версий Minecraft (1.21+) Chunky поддерживает параллельную генерацию, сокращающую время вдвое.
FarmLimiter и VillagerOptimiser: контроль ферм и жителей
FarmLimiter ограничивает количество животных одного типа в чанке. На сервере с 50 игроками автоматические фермы коров и кур создают 2000+ сущностей, увеличивая MSPT на 15-20 мс. Базовая конфигурация:
limits:
COW: 20
CHICKEN: 30
SHEEP: 20
PIG: 20
check-interval: 600 # проверка каждые 30 секунд
При превышении лимита новые животные не размножаются. Существующие не удаляются - фермы продолжают работать, но не создают избыточную нагрузку.
VillagerOptimiser решает проблему поиска работы жителями. Каждый житель каждые 1-2 секунды сканирует блоки вокруг в поисках рабочего места. 100 жителей создают 50-100 проверок в секунду. Плагин кэширует результаты поиска и увеличивает интервал до 10 секунд, снижая нагрузку на 80% без заметной задержки в работе ферм жителей.
Типичные ошибки при оптимизации и как их избежать
Ошибка 1: агрессивная очистка ClearLag. Симптом: игроки жалуются на пропажу дропа с боссов, исчезновение жителей, поломку ферм. Решение: всегда держите remove-bosses: false и remove-named-mobs: false. Добавьте VILLAGER, ARMOR_STAND, ITEM_FRAME в белый список. Тестируйте новые настройки на копии сервера.
Ошибка 2: игнорирование предупреждений Spark. Симптом: отчет Spark показывает плагин с Self Time 20%, администратор не заменяет его. TPS продолжает падать. Решение: если метод плагина занимает более 5% Self Time - ищите альтернативу. Плагины с открытым исходным кодом можно оптимизировать, закрытые - заменить.
Ошибка 3: конфликт плагинов очистки. Симптом: установлены ClearLag и еще один плагин для удаления предметов. Они срабатывают одновременно, вызывая ошибки и двойную нагрузку. Решение: один инструмент на задачу. ClearLag покрывает очистку сущностей полностью.
Ошибка 4: чрезмерная оптимизация. Симптом: view-distance=4, mob-spawn-range=2, item-despawn-rate=100. Сервер работает идеально, но игроки видят пустой мир без мобов и дропа. Решение: находите баланс. Увеличивайте параметры, пока TPS не начнет падать, затем откатывайте на шаг назад.
Заключение: ваш план действий по оптимизации сервера
Чек-лист для стабильных 20 TPS на Paper в 2026 году:
- Перейдите на Paper, если еще используете Spigot. Настройте view-distance=6, mob-spawn-range=4, item-despawn-rate=400.
- Установите ClearLag. Настройте очистку предметов каждые 5 минут, мобов - раз в час. Добавьте жителей и стойки для брони в белый список.
- Установите Spark. Запустите профилировщик на 5 минут в час пиковой нагрузки. Найдите плагины с Self Time выше 5% и замените их.
- Предгенерируйте мир через Chunky в радиусе 5000 блоков.
- Добавьте FarmLimiter и VillagerOptimiser, если на сервере много автоматических ферм.
Все изменения тестируйте на копии сервера. Создайте локальный инстанс с теми же плагинами и конфигурациями, примените настройки, проверьте TPS под нагрузкой. Перенос на продакшен - только после подтверждения стабильности.
Запустите профилировщик Spark прямо сейчас: /spark profiler start --timeout 300. Через 5 минут вы узнаете, какой плагин съедает ресурсы вашего сервера.