Проблемы с производительностью Minecraft серверов
«Лаги», низкий TPS, «фризы» и просадки — самые частые жалобы на производительность сервера. В консоли это обычно видно по предупреждению с жёлтым цветом Can't keep up! Is the server overloaded?. Причин может быть несколько, и для каждой есть свой план действий. Разберёмся по порядку.
Главный показатель производительности — TPS (количество тиков в секунду). Нормальное значение — 20. Если TPS ниже, начинаются «лаги». Посмотреть TPS можно командой /tps (на ядрах Paper и Spigot) или с помощью профилировщика spark командой /spark tps.
Что влияет на производительность
Производительность Minecraft-сервера зависит от нескольких вещей: хватает ли серверу ресурсов (процессор, оперативная память, диск), насколько тяжёлые на нём плагины и моды, какого размера игровой мир, сколько игроков онлайн и какие используются версия и ядро. Отдельная причина — перегруженный узел (нода), на котором работает твой сервер.
Железо и тарифные линейки
Minecraft почти не использует несколько ядер процессора — для него важнее не количество ядер, а частота одного. Поэтому сервер на более быстром процессоре будет работать плавнее, чем на медленном, но с кучей ядер. Модель и частота процессора зависят от тарифной линейки.
Линеек три: «Дешёвые», «Средние» и «Мощные». В старших линейках стоят более современные и высокочастотные процессоры — это особенно важно для тяжёлых сборок с модами. Подробнее о разнице — в статье про тарифные линейки.
План действий: если сервер с модами или большим онлайном стабильно лагает на «Дешёвой» линейке, имеет смысл перейти на «Среднюю» или «Мощную». Как это сделать, описано в статье Изменение локации, тарифа и линейки оборудования.
Как понять, что серверу не хватает ресурсов
Открой графики нагрузки сервера в личном кабинете или панели и посмотри на три показателя: процессор, память и диск.
Процессор (CPU)
Если использование CPU постоянно упирается в 100% на ядро (в панели 100% = одно ядро), процессора не хватает.
План действий: сначала оптимизируй сервер — снизь дальность прорисовки, убери тяжёлые плагины, ограничь мир (см. Оптимизация Minecraft сервера). Если это не помогает, переходи на линейку с более быстрым процессором через изменение тарифа: для Minecraft важна частота одного ядра, а не их количество, поэтому добавление ядер от лагов обычно не спасает.
Оперативная память (RAM)
Если потребление ОЗУ постоянно держится у самого лимита, а сервер вылетает с ошибками вроде java.lang.OutOfMemoryError или Native memory allocation (mmap) failed to map ... bytes, значит, памяти не хватает.
План действий: докупи ОЗУ, выбери более лёгкую версию игры или настрой автоматические перезапуски, чтобы память не накапливалась со временем (см. планировщик задач). Сколько памяти нужно под разные версии и сборки — в статье Выбор оптимальной конфигурации.
Диск
Если на диске закончилось место, сервер может перестать сохраняться или вообще не запускаться.
План действий: удали лишние файлы, либо докупи дисковое пространство. Удалять бэкапы для этого не нужно — они хранятся отдельно и в лимит диска не входят.
Как понять, что локация перегружена
Бывает наоборот: сервер лагает, TPS низкий, но в графиках твои CPU и RAM до лимита не доходят. Особенно если просадки появляются в пиковые часы — по вечерам и в выходные. Это признак того, что перегружен сам узел (нода), на котором, кроме твоего, работают и другие серверы.
- Загляни на status.superhub.host — возможно, по узлу уже есть уведомление.
- Напиши в поддержку с ID сервера и опиши ситуацию: лаги есть, а ресурсы при этом свободны. Специалисты проверят загрузку узла.
- Если проблема подтвердится, сервер можно перенести на другую локацию или линейку — как это сделать, описано в статье Изменение локации, тарифа и линейки оборудования.
Что сделать в первую очередь
Прежде чем докупать ресурсы, почти всегда стоит сначала оптимизировать сервер: перейти на ядро Paper, снизить дальность прорисовки (view-distance) и симуляции (simulation-distance), убрать ненужные тяжёлые плагины и ограничить размер мира. Часто этого хватает, чтобы лаги ушли без смены тарифа. Все рекомендации собраны в статье Оптимизация Minecraft сервера.