Minecraft: «Can't keep up!» — что значит и как разобрать
Предупреждение о тиках сервера: бюджет 50 мс на тик, что значит «отстаёт на N тиков» и как найти тяжёлую задачу в консоли без угадываний.
Содержание 15
- Коротко
- Шаги
- Условный пример: отчёт spark
- Как читать цифры в строке
- Как не спутать с другими проблемами
- Симптом → причина → решение
- Как сделать в панели EGN
- Что проверить после исправления
- Частые ошибки
- Вопросы и ответы
- Что значит «Can’t keep up! Is the server overloaded?»
- Почему строка появляется при старте?
- Что такое MSPT и TPS?
- Поможет ли больший тариф?
- Итог
В консоли сервера Minecraft появилась строка Can't keep up! Is the server overloaded? и цифры вроде «отстаёт на 2963 мс или 59 тиков». Звучит тревожно, но сама строка — не причина, а симптом. Она говорит, что сервер не успевает делать работу в отведённое время. Разберём, что это за время, почему сервер отстаёт и как найти тяжёлую задачу.
Коротко
Сервер Minecraft обрабатывает 20 тиков в секунду. Один тик должен уложиться примерно в 50 мс. Если тик длится дольше, сервер пишет Can't keep up! и показывает, на сколько он отстал. Разовые предупреждения при генерации мира обычны. Постоянные строки во время игры значат, что сервер перегружен, и причину нужно искать профилировщиком, например spark.
Шаги
-
Поймите, что значит строка. Миру Minecraft нужна работа каждый тик: двигать мобов, обрабатывать блоки, принимать действия игроков, отправлять данные. Всё это должно уложиться в 50 мс. Если работа длиннее, следующий тик начинается позже, и сервер накапливает отставание. Строка «отстаёт на N мс или M тиков» показывает, насколько.
На скриншоте тестовый сервер Paper 1.21.4 после запуска: строка про отставание на 2963 мс, то есть 59 тиков. Это случилось во время подготовки спавна, и такой вариант при старте встречается часто. Если та же строка повторяется в игре каждые несколько минут, пора разбираться.
-
Посмотрите, сколько тиков уходит. Бюджет в 50 мс удобно сравнивать с MSPT — миллисекундами, которые занимает один тик. Если MSPT стабильно ниже 50 мс, сервер справляется, и строки редкие. Если MSPT близко к 50 мс или выше, сервер в зоне риска. Команда
/msptв Paper показывает эти значения; spark тоже выводит TPS и MSPT.Схема наглядно: зелёная зона — тик внутри бюджета, превышение — отставание. Это не реальные данные, а иллюстрация механизма.
-
Найдите тяжёлую задачу. Здесь помогает профилировщик spark: он показывает, какие функции или плагины занимают время тиков. Запустите профилирование в игре в пиковые часы, дайте ему поработать 5–10 минут и изучите отчёт. Самый частый виновник — плагин, который делает тяжёлую работу на каждом тике.
-
Снизьте нагрузку на тик. Варианты, которые реально работают:
- уменьшить
view-distanceиsimulation-distanceвserver.properties; значения по умолчанию у обоих — 10; - предгенерировать мир заранее, чтобы генерация не шла во время игры;
- убрать или заменить плагин из отчёта spark;
- проверить частоту отчётов и автосохранения, если они совпадают с пиками.
server.properties # server.properties view-distance=8 simulation-distance=6Значения в примере — ориентир для слабой машины, а не рекомендация для всех. Подбирайте по MSPT до и после.
- уменьшить
-
Сравните результат. Запустите профилирование снова через сутки в тот же час. Если MSPT опустился и строки исчезли, причина найдена. Если нет, смотрите график процессора в «Консоли»: возможно, нехватка ядра, а не одна задача.
Условный пример: отчёт spark
Вы открываете отчёт spark и видите, что 40 % времени тика уходит на один плагин карты. Остальные задачи занимают мало. Решения два: отключить плагин или переписать его настройки так, чтобы он работал реже. Обычно после отключения такого плагина MSPT заметно падает, а строки Can't keep up! пропадают; свои цифры сравнивайте по spark до и после. В этом примере виноват один компонент, и это видно только по профилю, а не по догадкам.
Как читать цифры в строке
Строка «Running 2963ms or 59 ticks behind» удобна для проверки себя. Сервер делает 20 тиков в секунду, то есть тик занимает 50 мс. 2963 мс делим на 50 — получаем примерно 59 тиков. Значит, строка и цифры согласованы: сервер отстал на три секунды работы. Это не ошибка счётчика, а просто арифметика.
Что это значит на практике? Если отставание растёт во время игры, сервер не успевает отвечать игрокам: они видят задержки, блоки ставятся с паузой, а мобы двигаются рывками. Если отставание возникло один раз и исчезло, сервер нагнал задержку, и игроки почти ничего не заметили. Поэтому смотрите на динамику строк, а не на одну из них.
Как не спутать с другими проблемами
«Can’t keep up!» часто путают с двумя соседними симптомами. Первый — «Timed out»: игрок вылетает, но сообщение другое, и причина может быть в сети игрока. Второй — нехватка памяти: тогда в логе будет OutOfMemoryError или код 137, а не строка про тики. Разделить эти три случая помогает простой вопрос: что сервер пишет в консоли в тот момент, когда игроки жалуются.
Симптом → причина → решение
| Симптом | Причина | Решение |
|---|---|---|
| Строка при запуске или генерации мира, потом тихо | Разовая нагрузка, норма | Ничего не делать, проверить через час |
| Строки каждые несколько минут в игре | Тяжёлая задача в тике | Профилировщик spark, отключить или заменить плагин |
| MSPT близко к 50 мс постоянно | Недостаточно процессора или тяжёлые плагины | Меньше онлайна, тариф с сильным ядром |
| Отставание растёт в вечерний пик | Пиковая нагрузка | view-distance и simulation-distance ниже, предгенерация |
| Строки вместе с OOM | Нехватка памяти | См. статью про OutOfMemoryError |
Как сделать в панели EGN
- Откройте «Консоль» и проследите строки
Can't keep up!по времени. - Откройте «Файлы» →
server.propertiesи проверьтеview-distanceиsimulation-distance. Значения по умолчанию — 10 у обоих. - Откройте «Моды и плагины» и посмотрите список. Если в отчёте spark виден плагин, отключите его в «Модах и плагинах» и сравните MSPT.
- Запустите профилирование spark в пиковый час и сохраните отчёт.
- Через сутки сравните графики процессора и памяти с прошлым периодом.
На скриншоте строка про отставание после запуска. Цифра сходится с расчётом: 2963 мс — это около 59 тиков по 50 мс. Такая строка при старте — норма; повторяющиеся в игре — повод для разбора.
Что проверить после исправления
Сравнивайте MSPT до и после изменения в одинаковые часы: например, вечером в будни. Одного измерения мало, потому что нагрузка плавает. Если после правок строки Can't keep up! исчезли в пиковый час и MSPT держится ниже 50 мс, изменение сработало. Если нет, вернитесь к отчёту spark и проверьте следующий по времени потребитель.
Частые ошибки
- Паниковать из-за одной строки. Разовые
Can't keep up!при старте и генерации мира — норма. - Считать, что лечит перезапуск. Перезапуск сбрасывает состояние, но тяжёлая задача вернётся на следующем пике.
- Менять все настройки сразу. Не поймёте, что помогло, и можете снизить качество игры без пользы.
- Ставить оптимизаторы вслепую. Моды-оптимизаторы помогают, но без профиля не знаете, нужны ли они вам. Сначала найдите причину.
- Винить память. Строка про тики — про процессор и задачи тика. Если память на лимите, смотрите статью про OutOfMemoryError.
Вопросы и ответы
Что значит «Can’t keep up! Is the server overloaded?»
Сервер не успел обработать тик в отведённые 50 мс и отстаёт. Цифра после строки показывает, на сколько он отстал.
Почему строка появляется при старте?
Во время подготовки спавна и генерации мира нагрузка резко растёт. Разовые строки в эти моменты — норма. Тревожить должны постоянные строки во время игры.
Что такое MSPT и TPS?
MSPT — миллисекунды на один тик. TPS — число тиков в секунду, максимум 20. Пока MSPT ниже 50 мс, сервер держит 20 TPS.
Поможет ли больший тариф?
Если узкое место — процессор и он загружен постоянно, помогает. Если виноват один плагин, сначала уберите его и проверьте результат.
Итог
«Can’t keep up!» означает, что тик длиннее 50 мс. Разовые строки при старте — норма, постоянные — повод для разбора. Найдите тяжёлую задачу через spark, снизьте нагрузку на тик и сравните MSPT. Смежные статьи: про Timed out, про лаги и про память.
Сервер под Minecraft за пару минут — egnetwork.ru
Читать далее
Вся рубрика →Чек-лист оптимизации Minecraft-сервера: 10 шагов от первого замера до стабильного MSPT
Пошаговый чек-лист для сервера Minecraft в панели EGN: замер MSPT, память, дальность, Chunky, расписание перезапуска, бэкапы и проверка после каждого изменения.
TPS и MSPT в Minecraft: что это, как читать цифры и когда начинаются лаги
Что значат TPS и MSPT, почему 50 мс — граница, как посмотреть их через spark в консоли EGN и какие выводы делать из цифр, а не из ощущений.
Почему лагает Minecraft-сервер при 10 игроках и что с этим делать
Типичные причины лагов на сервере на 10 игроков: процессор, память, диск, дальность и фермы. Как понять, что именно тормозит, и какие шаги в панели EGN помогают.