Игроки пишут «лагает», а в панели всё зелёное — знакомая ситуация. Нагрузка на игровой сервер редко бывает равномерной: процессор может быть загружен на 20%, при этом одно ядро упирается в потолок, и именно оно тормозит весь мир. Разберём, что показывают графики в панели, какие числа считать нормой и по каким признакам понять, что проблема не в железе, а в конфиге.
Из чего складывается нагрузка на игровой сервер
Четыре метрики, которые видно в панели, и одна, которую видно только изнутри игры.
CPU. Главный ресурс для большинства игровых серверов. Minecraft почти полностью однопоточный: основной тик мира считается в одном потоке, и сколько бы ядер ни было, мир быстрее не станет. Rust и Palworld параллелятся лучше, но и там есть узкие однопоточные места.
RAM. Оперативная память. Здесь важен не столько процент занятого, сколько поведение: у Java-сервера память постоянно растёт и падает — это нормальная работа сборщика мусора. Тревожно, когда график упирается в потолок и остаётся там.
Диск. Операции чтения и записи. Всплески при автосохранении и бэкапе ожидаемы. Постоянно высокий I/O — признак тяжёлого мира или слишком частых сохранений и бэкапов.
Сеть. Входящий и исходящий трафик. Для 20 игроков в Minecraft это единицы мегабит; аномальный рост при обычном онлайне — повод заподозрить атаку.
TPS и FPS сервера. Внутренняя метрика игры, и она честнее всех остальных. В Minecraft tps показывает тики в секунду: 20.0 — идеал, 18–20 — нормально, ниже 15 — игроки уже чувствуют. В Rust server.fps работает так же: 60 хорошо, ниже 20 — сервер захлёбывается.
Как читать графики
Мгновенное значение почти бесполезно, смотрите на форму кривой за час-сутки.
- Ровная линия под потолком. Ресурс исчерпан. Для CPU это значит, что сервер не успевает обсчитывать тик, для RAM — что вот-вот прилетит
OutOfMemoryError. - Пила с ростом основания. Классика утечки памяти: пики становятся выше от часа к часу, минимумы тоже ползут вверх. Лечится перезапуском как симптом и поиском виноватого плагина как причина.
- Регулярные всплески по расписанию. Совпадают с бэкапом или сохранением мира. Если они мешают — разнесите задачи по времени, как описано в статье про планировщик задач.
- Скачок при заходе игрока. Генерация новых чанков — самая тяжёлая операция в Minecraft. Если сервер проседает каждый раз, когда кто-то уходит в неизведанные земли, помогает предварительная генерация мира и ограничение border.
- Резкий провал в ноль. Сервер упал. Смотрите лог за минуту до провала.
100% CPU — не всегда беда
Частая паника: панель показывает 100%, значит, тариф маловат. Не обязательно.
Панели считают процент по-разному. В Pterodactyl и на тарифах TeaHost 100% означает «одно ядро полностью занято», а потолок тарифа указан в той же шкале: Micro — 100%, Start — 200%, Classic — 250%, Pro — 300%, Mega — 400%, Ultra — 600%, God — 800%. Для Minecraft упереться в 100% — норма при активном мире, ведь основной тик живёт в одном потоке, а вот 380% из 400% — уже реальная проблема.
Полезнее ориентироваться на TPS: если процессор загружен, но TPS держится 19–20, играть комфортно и трогать ничего не нужно.
Память: сколько нужно и когда мало
Ориентиры для ванильного сервера — та же шкала, по которой подобраны тарифы TeaHost. Моды и плагины делят эти цифры: для Minecraft примерно вдвое, для Rust и CS2 — в 1,5 раза, для Palworld — в 1,25 раза.
| Память | Minecraft | Rust | CS2 | Palworld |
|---|---|---|---|---|
| 2 ГБ | до 5 игроков | — | до 12 | — |
| 4 ГБ | до 15 | до 10, карта около 2000 | до 24 | до 8 |
| 6 ГБ | до 25 | до 25, карта до 2500 | до 32 | до 16 |
| 8 ГБ | до 40 | до 50, карта до 3000 | до 64 (предел игры) | до 24 |
| 12 ГБ | до 70 | до 100, карта до 3500 | — | до 32 (предел игры) |
| 16 ГБ | до 100 | до 150, карта до 4000 | — | — |
| 24 ГБ | до 150 | до 200, карта 4000–4500 | — | — |
Минимум для Rust и Palworld — 4 ГБ. Сборки на 100+ модов Minecraft обычно начинают с 6–8 ГБ, а память Palworld растёт по мере обживания карты, поэтому без ежедневного перезапуска закладывайте ступень выше.
Признак нехватки — не высокий процент, а поведение. Java-сервер при нехватке памяти начинает лагать рывками каждые несколько секунд: сборщик мусора запускается всё чаще и на всё дольше. В логе это видно по строкам вида Can't keep up! Is the server overloaded?.
При этом выделять серверу всю доступную память — ошибка. Оставьте 1–2 ГБ операционной системе, иначе процесс убьёт OOM-killer.
Что делать, когда лагает
Порядок диагностики, который экономит деньги на апгрейде.
- Проверьте TPS изнутри. Если он в норме, а игроки жалуются, проблема в сети или на стороне клиентов, а не в сервере.
- Снимите профиль. В Paper и Purpur есть
spark: команда/spark profiler start, через пару минут/spark profiler stop— и вы получите отчёт с раскладкой по плагинам (все команды spark). Это единственный способ узнать виновника наверняка, а не гадать. - Посмотрите на количество сущностей. Ферма мобов, тысяча предметов на полу, стада животных в загоне — частая причина просадки. Команда
/spark tpsи подсчёт сущностей по чанкам покажут очаг. - Отключите плагины по одному. Грубый, но рабочий метод, когда профайлера нет.
- Только потом думайте о тарифе. Апгрейд не спасёт сервер, где один криво написанный плагин съедает половину тика.
Конкретные настройки для Minecraft разобраны в статье про оптимизацию сервера, а более широкий разбор мониторинга — в материале как мониторить нагрузку сервера.
Когда пора менять тариф
Честные признаки, что дело действительно в ресурсах:
- TPS стабильно ниже 17 при штатном онлайне, профайлер не показывает одного явного виновника, нагрузка размазана по всем системам.
- Память упирается в лимит на пустом сервере сразу после запуска — сборка просто не влезает.
- Игроков стало вдвое больше, чем было при выборе тарифа, и просадки начались ровно с ростом онлайна.
- Диск постоянно занят операциями, а мир весит десятки гигабайт.
Как проходит переход на более мощный тариф, описано в статье про апгрейд игрового сервера.
Если же нагрузка растёт скачками без роста онлайна, а трафик подозрительно велик — это может быть не производительность, а атака; тогда смотрите в сторону DDoS-защиты.
Смотрите на графики регулярно, а не только когда всё уже горит: недельная динамика показывает проблему за несколько дней до того, как её заметят игроки. Тарифы с мониторингом в панели — здесь.