Почему для игрового сервера важен процессор и однопоточная скорость
Почему сервер Minecraft и других игр лагает при слабом процессоре, даже если загрузка CPU низкая, и как выбрать железо с учётом одного игрового потока.
Содержание 16
- Коротко
- Что такое тик
- Почему это один поток
- Частота одного ядра
- Как проверить, что дело в процессоре
- Пример: десять игроков, низкая загрузка CPU
- Как сравнивать процессоры честно
- Что выбирать
- Пример: что меняется после смены тарифа
- Частые ошибки
- Итог
- Вопросы и ответы
- Почему сервер лагает при низкой загрузке процессора?
- Сколько миллисекунд отводится на тик Minecraft?
- Что важнее: ядра или частота?
- Как проверить, что процессор — узкое место?
Многие владельцы смотрят на процессор сервера как на счётчик ядер: шестнадцать лучше восьми, тридцать два лучше шестнадцати. Для игрового сервера это часто неверно. У многих игр основная логика мира выполняется в одном главном потоке, и в справочнике требований EGN это прямо отмечено для Minecraft, CS2, Arma 3 и SA-MP. Поэтому для них решает скорость одного ядра, а не их количество. У других игр часть работы вынесена в фоновые потоки, но главный цикл всё равно один.
Разберём, почему так получается, как это проявляется в лагах и что делать при выборе тарифа.
Коротко
Игровой сервер считает мир последовательно: каждый тик обрабатывает игроков, сущности, блоки и события по очереди. Главный поток работает на одном ядре, поэтому важны частота и поколение процессора. Для Minecraft при 20 тиках в секунду на каждый тик отводится 50 миллисекунд. Если расчёт не укладывается в это время, сервер начинает лагать. Выбирайте тариф с быстрым процессором, а не просто с большим числом ядер.
Что такое тик
Тик — это один шаг игрового мира. Сервер Minecraft обновляет мир двадцать раз в секунду, поэтому на один тик отводится 1000 мс / 20 = 50 мс. За это время сервер должен обработать всех игроков, их действия, падающие блоки, растения, мобов, жидкости, редстоун и всё остальное.
Если тик занимает 30 мс, запас есть. Если 80 мс, сервер не успевает: TPS падает ниже 20, блоки ломаются с задержкой, мобы двигаются рывками, а игроки «откатываются» назад.
Эта цифра нигде не записана в настройках как «лимит нагрузки», она следует из частоты тиков. Поэтому сервер с низкой загрузкой процессора может лагать. Процессор при этом не загружен на сто процентов, но главный поток уже упёрся в свой лимит времени.
Почему это один поток
Мир сервера — это общее состояние, которое меняется в зависимости от действий всех игроков. Если два потока одновременно пытаются изменить один блок или одну сущность, без синхронизации получится гонка данных. Разработчики держат основную логику в одном потоке, чтобы сохранить предсказуемость. Поэтому добавить ядер сложно: без переписывания логики новые ядра просто простаивают.
Paper, самое популярное ядро для Minecraft, выносит в отдельные потоки то, что это безопасно: работу с сетью, часть загрузки и сохранения чанков, асинхронные задачи плагинов. Но основная логика мира остаётся в главном потоке.
Есть и экспериментальный путь. Ядро Folia убирает единый главный поток: мир делится на регионы, и каждый регион тикает в своём потоке. Разработчики Folia в README проекта предупреждают, что плагины должны быть специально адаптированы под региональную многопоточность: обычные плагины для Paper на нём не заработают как есть. Для типичного сервера с плагинами это не выбор, а проект для очень больших серверов.
Частота одного ядра
Если главный поток упирается в лимит, помогает только одно: быстрее выполнять ту же работу. Это зависит от частоты процессора и от поколения архитектуры. Новый процессор с тем же числом ГГц обычно выполняет больше инструкций за такт, поэтому разница между поколениями заметна даже без разгона.
В каталоге EGN у тарифов это видно по моделям процессоров. Например, в России Standart стоит на Intel i9 до 5 ГГц, а Premium — на Intel Core i9-13900K до 5,8 ГГц. В Польше Premium стоит на AMD Ryzen 9 7950X до 5,7 ГГц, а Standart — на Ryzen 5 4650G. В Новосибирске Premium работает на AMD Ryzen 9 9950X. Для однопоточной задачи частота и поколение важнее, чем количество потоков в описании. Железо по площадкам смотрите в каталоге: оно разное, и подробная таблица есть в статье «Standart или Premium».
Сравнивать процессоры по числу ядер бессмысленно: восемь быстрых ядер дадут игровому серверу больше, чем тридцать два медленных.
Как проверить, что дело в процессоре
Прежде чем менять тариф, проверьте диагноз. На Paper есть команды /tps и /mspt, которые показывают состояние тиков. TPS показывает, сколько тиков сервер выполняет в секунду, при норме 20. MSPT показывает, сколько миллисекунд в среднем занимает один тик. Как читать эти цифры, подробно разобрано в статье «TPS и MSPT».
Ориентир такой:
- TPS около 20 и MSPT до 50 — сервер справляется;
- MSPT растёт к 50 и выше, а TPS падает ниже 20 — процессор не успевает;
- TPS держится, а игроки жалуются на задержку — проблема скорее в сети или пинге.
Если MSPT растёт вместе с онлайном, а память и диск не перегружены, виноват процессор или плагин, который тратит время в главном потоке. Профилировщик Spark покажет, какой именно (гайд по Spark).
Пример: десять игроков, низкая загрузка CPU
Условный пример (цифры для иллюстрации, не замер). Сервер Minecraft работает нормально днём, но вечером при десяти игроках появляются жалобы на лаги. Владелец смотрит график и видит, что загрузка CPU невысокая, и делает вывод, что железо в порядке.
Правильный ход — посмотреть MSPT. Допустим, на пике оно выросло до 60 мс. Процессор использовался не полностью, потому что главный поток работал на одном ядре и упирался в лимит. Это и есть разница между «процессор занят» и «процессор узкое место».
Решение здесь два: оптимизировать плагины, которые тратят время в тике, и выбрать тариф с более быстрым процессором. Если тик укладывается в 50 мс с запасом, лаги уходят.
Смотрите на MSPT, а не только на загрузкуЗагрузка CPU в процентах усредняет все ядра. Однопоточный сервер может упираться в потолок, при этом общий процент будет низким. MSPT показывает реальный запас по времени тика.
Как сравнивать процессоры честно
Чтобы сравнить два тарифа, не нужно быть инженером. Достаточно правила: сравнивайте однопоточные результаты, а не многопоточные. Многопоточные бенчмарки показывают, как быстро процессор справляется со всеми ядрами сразу, а игровому серверу нужен один быстрый поток. Однопоточный результат (например, в публичных таблицах PassMark или Geekbench) лучше отражает то, что происходит в главном потоке тика.
Второй момент — поколение. Два процессора с одинаковой частотой могут заметно различаться по скорости, если один новее. Поэтому смотрите на модель и год выпуска, а не только на гигагерцы. Третий — турбо-частота. Заявленное «до 5 ГГц» означает максимум, который процессор выдаёт при нагрузке на одно ядро, а не постоянную частоту всех ядер.
Наконец, учитывайте виртуализацию. Игровой сервер работает на виртуальном ядре, и в карточке тарифа игровых серверов EGN CPU указан в процентах от ядра (например, 200% — это два ядра времени). Для однопоточной игры это значит, что выше 100% тариф ей почти ничего не даёт: главный поток занимает одно ядро, а остальное уходит фоновым задачам, сборщику мусора и сети.
Что выбирать
При выборе тарифа для игрового сервера ориентируйтесь на следующее:
- Частота и поколение. Новее и быстрее лучше. Если модель не указана, спросите в поддержке.
- Число ядер. Нужно достаточно, чтобы не мешать фоновым задачам: сеть, сохранение, бэкапы. В каталоге EGN у «Камня» в Standart лимит CPU 150%, у «Угля» 250%, у «Факела» в Premium 200%.
- Запас по памяти. Процессор не решит проблему нехватки памяти: сборщик мусора будет работать чаще и добавит задержек.
- Линейка. Premium с быстрыми процессорами подходит для модпаков и большого онлайна. Standart с проверенными моделями хорош для лёгкой нагрузки.
Пример: что меняется после смены тарифа
Допустим (цифры условные: реального замера EGN здесь нет), сервер на Standart тормозил при двенадцати игроках, и MSPT держался выше 50 мс. Владелец перешёл на Premium с тем же объёмом памяти и тем же набором плагинов и снова посмотрел MSPT на пике. Если значение ушло ниже 50 мс с запасом, лаги пропадают; если нет, причина в плагинах или мире, а не в железе. Не обещайте себе точного ускорения: оно зависит от конкретной игры, плагинов и от того, насколько быстрее модель процессора на новой линейке.
Этот пример показывает, зачем проверять метрики до и после. Без замеров легко решить, что помог не процессор, а перезапуск или чистка мира. Запишите MSPT до смены тарифа и через сутки после неё, при одинаковом онлайне.
Частые ошибки
| Симптом | Причина | Что сделать |
|---|---|---|
| Загрузка CPU низкая, а лаги есть | Однопоточный лимит главного потока | Смотреть MSPT и профилировать (Spark) |
| Добавили ядра, лаги не ушли | Игра не использует их для тика | Выбрать процессор с более высокой частотой |
| Лаги только вечером | Пик онлайна и рост MSPT | Тариф с быстрым процессором или меньше плагинов |
| Тяжёлый плагин съедает тик | Работа в главном потоке | Найти плагин через Spark и заменить или настроить |
| Лаги от сборки сборщика мусора | Нехватка памяти, а не процессор | Поднять память тарифа |
Итог
Игровой сервер упирается в один поток, а не в общее число ядер. Поэтому смотрите на частоту и поколение процессора, проверяйте MSPT и не доверяйте одной только загрузке CPU. Если тик не укладывается в 50 мс на пике, помогает быстрый процессор и аккуратные плагины, а не просто больше ядер.
Вопросы и ответы
Почему сервер лагает при низкой загрузке процессора?
Потому что главный поток тика работает на одном ядре и может упираться в лимит времени, даже когда общая загрузка процентов низкая.
Сколько миллисекунд отводится на тик Minecraft?
При норме 20 тиков в секунду на один тик отводится 50 миллисекунд.
Что важнее: ядра или частота?
Для игрового сервера важнее частота и поколение одного ядра. Ядра помогают фоновым задачам, но не ускоряют главный поток.
Как проверить, что процессор — узкое место?
Команда /mspt на Paper покажет время тика. Если оно растёт к 50 мс и выше на пике, процессор или плагин в главном потоке не справляется.
Сервер под Minecraft за пару минут — egnetwork.ru
Читать далее
Вся рубрика →График нагрузки в панели EGN: когда пора на тариф выше
Как читать график нагрузки за сутки и неделю, что значат проценты памяти и процессора и при каких показателях панель сама советует тариф выше.
Почему лагает Minecraft-сервер при 10 игроках и что с этим делать
Типичные причины лагов на сервере на 10 игроков: процессор, память, диск, дальность и фермы. Как понять, что именно тормозит, и какие шаги в панели EGN помогают.
Ошибки начинающих владельцев игровых серверов и как их не повторить
Десять ошибок, из-за которых сервер падает, теряет игроков и мир: от полного диска до правки без бэкапа. Для каждой — симптом, причина и решение в панели EGN.