☰
05.11.2026

Лаги Minecraft-сервера на VPS: откуда они берутся и как их убрать

Лаги на сервере Minecraft входят в число самых частых жалоб, которые слышит владелец сервера. Обычно они случаются в самый неудобный момент: друзья собрались поиграть вечером, а сломанные блоки возвращаются на место, мобы замирают, чат приходит с опозданием. Обиднее всего то, что сам VPS на бумаге выглядит вполне мощным.

Этот материал для тех, кто держит на виртуальном сервере небольшой мир для друзей, комьюнити-SMP или сборку с модами. Опыт системного администрирования не нужен. Мы разберём:

Тормозит точно сервер? Три вида лагов, которые выглядят одинаково

Игроки называют лагом всё, что кажется медленным. На практике за этим словом стоят три разные проблемы, и у каждой свои способы решения.

Серверный лаг. Сервер не успевает просчитывать игру. Типичные признаки:

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

Клиентский лаг. Компьютер самого игрока не справляется с картинкой. Падает FPS из-за шейдеров, большой дальности прорисовки или слабой видеокарты. Сервер здесь ни при чём.

Разобраться помогает простое правило. Если лагает у всех сразу, смотрим на сервер. Если жалуется один человек, начинаем с его подключения или ПК. Дальше в статье речь пойдёт именно о первом случае.

Как сервер просчитывает игру: тики, TPS и MSPT

Чтобы найти причину задержек, нужно знать два показателя. Оба описывают, как сервер справляется со своей главной задачей: снова и снова обновлять игровой мир.

Почему цифра 20 так важна

Сервер Minecraft обновляет мир небольшими шагами, они называются тиками. За один тик он двигает мобов, выращивает урожай, запускает редстоун, обрабатывает действия игроков и многое другое. Игра рассчитана на 20 тиков в секунду, поэтому на каждый тик у сервера есть 50 миллисекунд.

TPS (ticks per second, тики в секунду) показывает, укладывается ли сервер в этот бюджет:

Почему MSPT предупреждает раньше TPS

TPS не бывает выше 20, поэтому здоровый сервер и сервер на грани показывают одно и то же значение. MSPT (milliseconds per tick, миллисекунды на тик) говорит, сколько времени уходит на каждый тик. По нему проблему видно заранее:

Сервер с 20 TPS и 46 мс на тик выглядит идеально. Но достаточно ещё одного игрока, который побежит исследовать новые земли, и лимит будет превышен. Средние значения к тому же прячут пики. Если обычный тик занимает 22 мс, а каждый двадцатый тянется 140 мс, игроки будут жаловаться на лаги при TPS 19.9. Поэтому хорошие профайлеры показывают время тика распределением, а одной цифре доверять опасно.

Почему одно ядро важнее десяти

Эта деталь удивляет большинство начинающих админов. Основной игровой цикл работает в одном потоке, и в документации Paper прямо советуют выбирать процессор с высокой однопоточной производительностью. Загрузка чанков, сеть и сборка мусора используют другие потоки, но сам тик зависит от одного ядра.

Вывод для практики: сервер с 32 медленными ядрами может работать хуже, чем сервер с 8 быстрыми. При аренде VPS частота и качество каждого виртуального ядра важнее их общего количества.

Что добавляет к картине VPS

Виртуальный сервер делит физическую машину с другими клиентами. Это нормально и обычно работает хорошо, но появляется несколько причин лагов, которых не бывает на домашнем ПК.

CPU steal time. Гипервизор распределяет процессорное время между виртуальными машинами. Если вашему серверу нужен процессор, а он занят чужими задачами, сервер ждёт. Это ожидание называется steal time, в Linux оно видно как «st» в утилитах top и vmstat. Инженеры хостингов обычно считают, что steal от 3 до 5% в пиковые часы стоит изучить, а устойчивые 10% и больше говорят о перегруженном хосте.

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

Медленный диск. Сервер постоянно читает и записывает чанки, данные игроков и базы плагинов. Если TPS проседает при каждом автосохранении мира, узкое место скорее всего в диске. Частая причина в HDD или перегруженном общем хранилище, поэтому для игровых серверов стандартом стали NVMe-диски.

Расстояние до игроков. Пинг зависит от географии. Если ваше сообщество в основном из Казахстана, сервер в европейском дата-центре добавит каждому игроку лишнюю задержку ещё до того, как сервер начнёт обработку. Площадка в Алматы заметно сокращает этот путь.

При выборе хостинга важно видеть, что именно вы получаете. На VPS Serverspace количество ядер, объём памяти и диска вы выбираете сами, нагрузку видите в панели управления, а конфигурацию можно поменять позже без переноса мира к другому провайдеру. Для казахстанских игроков есть дата-центр в Алматы. Так проще отделить проблему инфраструктуры от проблемы настроек, и с этого начинается любой поиск причин лагов.

Как найти причину: диагностика по шагам

Угадывать дольше, чем измерять. Команда PaperMC рекомендует сначала профилировать сервер и только потом что-то менять. Шаги ниже идут от быстрых проверок к подробному анализу.

Шаг 1. Проверьте TPS и MSPT в игре

На Paper и его форках введите /tps и /mspt в консоли или в чате с правами оператора. Запишите значения во время обычной игры и в момент, когда игроки жалуются.

Шаг 2. Посмотрите отчёт о состоянии в spark

spark это бесплатный профайлер производительности. Начиная с версии 1.21 он встроен в Paper, ставить ничего не нужно. Две команды дают быстрый обзор:

Старый инструмент Timings устарел и по умолчанию отключён, так что инструкции с ним можно пропускать.

Шаг 3. Запустите профайлер во время лагов

Начните запись в тот момент, когда сервер тормозит:

/spark profiler start --timeout 600

Через 10 минут spark выдаст ссылку на веб-отчёт. Откройте его и посмотрите на верх списка: там то, на что сервер тратит больше всего времени тика. Обычно это одно из трёх:

Если лаги приходят короткими всплесками, добавьте параметр --only-ticks-over 100, чтобы в отчёт попали только медленные тики.

Шаг 4. Проверьте сам VPS

Подключитесь к серверу по SSH и запустите top или vmstat 1. Смотрите на три показателя:

Шаг 5. Исключите сеть и атаки

Если TPS держится на 20, MSPT низкий, а игроков всё равно выкидывает, проблема находится за пределами игрового цикла. Сообщение в консоли «Can’t keep up! Is the server overloaded?» всегда означает, что тормозит сам сервер. Сетевые атаки обычно на TPS не влияют. Чтобы проверить, нет ли флуда, посчитайте подключения к игровому порту:

netstat -an | grep :25565 | wc -l

Тысячи подключений с небольшого числа адресов или волна входов ботов в логе говорят об атаке. Тогда нужна фильтрация на уровне сети или защитный прокси перед сервером. Плагины тут не помогут.

Как убрать лаги: от самых заметных правок к мелким

Когда причина известна, исправляйте всё по порядку влияния. Опытные админы советуют начинать с серверного ядра и настроек мира, а о железе думать в последнюю очередь.

Перейдите на Paper или Purpur и проверьте версию Java

Официальный сервер от Mojang работает менее эффективно, чем альтернативы. Paper это бесплатный форк, в котором переписаны многие медленные части игры, при этом он совместим с обычными клиентами. Purpur построен на Paper и даёт ещё больше настроек. Для очень крупных серверов есть Folia: она делит мир на регионы и считает их на разных ядрах. Но многие плагины с ней несовместимы, и для небольшой компании она избыточна.

Следите за версией Java. Начиная с Minecraft 26.1 сервер Paper требует Java 25 или новее и не запускается на Java 21. Версии с 1.20.5 по 1.21.x работают на Java 21.

Сначала снижайте дистанцию симуляции, потом прорисовки

Два параметра в server.properties сильнее всего влияют на нагрузку:

Дистанция симуляции нагружает основной поток гораздо сильнее, поэтому снижайте её первой. Хорошая отправная точка: view-distance=7 и simulation-distance=4. Игроки по-прежнему видят далеко, а сервер просчитывает меньшую область.

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

Сгенерируйте мир заранее

Генерация нового ландшафта входит в число самых тяжёлых операций сервера. Когда несколько игроков разбегаются в разные стороны, сервер строит новые чанки для каждого прямо на ходу. Плагин Chunky решает это, генерируя карту заранее:

/chunky radius 2500
/chunky start

Для небольшого сервера разумно начать с радиуса от 1000 до 2500 блоков. Запустите генерацию до открытия мира или на ночь и учтите, что большая карта займёт больше места на диске.

Наведите порядок с сущностями, фермами и редстоуном

Избыток сущностей чаще всего становится причиной низкого TPS. Каждый моб, выпавший предмет, вагонетка или рамка обрабатываются каждый тик. Чтобы найти проблемные места:

В файле paper-world-defaults.yml Paper позволяет ограничить число сущностей на чанк и сократить проверки столкновений. Purpur умеет упрощать поведение жителей для больших торговых залов. Помогает и простое правило для игроков, например лимит животных в одном загоне.

Выделите Java столько памяти, сколько нужно

Память помогает только до определённого предела. Если отдать Java сильно больше, чем ей требуется, сборщику мусора придётся убирать больше, и его паузы станут длиннее. Это выглядит как регулярные подвисания раз в несколько секунд, хотя свободной памяти много.

Практичные правила:

Проверьте плагины

Плохо написанные плагины занимают второе место среди причин лагов сразу после сущностей. Под подозрением обычно рендеры карт, тяжёлые античиты и плагины, которые обращаются к базе данных при каждом событии. В отчёте spark видна доля каждого плагина во времени тика. Обновите главного виновника, найдите облегчённую замену или удалите его.

Когда решение в более мощном тарифе

Бывает, что настройки в порядке, мир сгенерирован, профайлер ничего необычного не показывает, а одно ядро всё равно загружено на 100% или steal time продолжает расти. Значит, вы упёрлись в возможности железа, и разумный шаг здесь в увеличении ресурсов. На VPS Serverspace процессор и память можно добавить в панели управления по мере роста сообщества, сервер и мир при этом остаются прежними.

Какая правка подходит под ваш симптом?

Таблица поможет быстро сориентироваться, если лаги вернутся.

Симптом Вероятная причина Как проверить Что сделать
Лагает, когда игроки исследуют новые земли Генерация чанков на ходу В отчёте spark генерация мира в начале списка Сгенерировать мир через Chunky, снизить simulation-distance
Короткие подвисания раз в несколько секунд Паузы сборщика мусора /spark health, раздел GC в отчёте spark Задать Xms равным Xmx, включить флаги Aikar, не раздувать память
TPS падает возле одной базы или фермы Много сущностей или редстоун-часов /minecraft:debug entities, отчёт spark Лимиты сущностей в Paper, фермы поменьше, отключить постоянные часы
Случайные зависания при малом онлайне Steal time на загруженном хосте Столбец «st» в top или vmstat Перейти на тариф с предсказуемым CPU
TPS проседает при автосохранении Медленный или перегруженный диск «wa» в top, совпадение просадок с сохранением NVMe-диск, удаление лишних чанков
Одно ядро на 100%, MSPT выше 50 мс Основной поток упёрся в предел top с отображением по ядрам Снизить дистанции, проверить плагины, взять CPU быстрее
TPS 20, но лагает у одного игрока Сеть или ПК игрока Пинг в списке игроков, экран F3 Дата-центр ближе, проводное подключение, лёгкие настройки клиента
Массовые входы и отключения при нормальном TPS Атака ботов или DDoS netstat по порту 25565, лог сервера Фильтрующий прокси, белый список, лимиты в файрволе
Сервер не запускается после обновления Устаревшая Java Ошибка в консоли при старте Установить Java 25 для Minecraft 26.1 и новее

Чем приходится платить за каждую правку

У любой оптимизации есть цена, и её лучше знать заранее:

Лучше всего менять по одному параметру за раз, проверять результат через spark и объяснять игрокам, что изменилось и зачем.

Пять типовых ситуаций и как с ними справиться

1. Новый мир и всеобщее исследование. В день запуска десять игроков разбегаются в разные стороны. MSPT подскакивает выше 70 мс, а spark показывает генерацию чанков на первом месте. Что помогает: генерация карты через Chunky на 2500 блоков и сниженная дистанция симуляции в первую неделю.

2. Подвисания каждые несколько секунд при свободной памяти. На VPS с 16 ГБ серверу выделено 12 ГБ, но он регулярно замирает, а профайлер указывает на сборку мусора. Что помогает: уменьшить память до 8 ГБ, выровнять стартовый и максимальный объём, включить флаги Aikar.

3. Железная ферма на 200 жителей. TPS падает только рядом с базой одного игрока. Что помогает: упрощённая логика жителей в Purpur и серверное правило, которое ограничивает размер ферм.

4. Зависания, которые не совпадают ни с чем в игре. Лаги случаются в разное время суток, даже когда онлайн всего два или три человека. vmstat показывает, что во время зависаний steal time подскакивает до 15%. Что помогает: переезд на VPS с предсказуемыми ресурсами процессора.

5. TPS 20, а всех выкидывает. Игроков отключает волнами, а в логе сотни входов с незнакомых аккаунтов. Это атака ботов. Что помогает: фильтрующий прокси перед сервером, белый список и лимиты подключений в файрволе.

Частые ошибки, из-за которых лагов становится больше

Вывод: сначала измеряем, потом исправляем

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

  1. Определите вид лага: серверный, сетевой или клиентский.

  2. Смотрите на MSPT вместе с TPS.

  3. Запишите профиль spark в момент лагов.

  4. Проверьте steal time, процессор и диск на VPS.

  5. Вносите правки от самых заметных к мелким и замеряйте результат после каждой.

Хороший следующий шаг: выполнить /spark health сегодня, пока сервер работает спокойно, и сохранить результат. Когда игроки снова начнут жаловаться, у вас будет эталон для сравнения. Если замеры покажут, что предел в самом железе, VPS с прозрачными и масштабируемыми ресурсами вроде Serverspace снимет инфраструктурную часть проблемы, и останется только довести до ума настройки.