Blog · blog

Лучшие моды для улучшения производительности Minecraft-серверов

Задержка на стороне сервера — это другая проблема, чем FPS клиента. Настройка JVM флагов, предварительно сгенерированные чанки и разумная дальность прорисовки решают большую часть проблем.

TRtrolPublished 6 min read

Задержки на сервере — это совсем другое явление, чем задержки на стороне клиента.

Руководства для клиентов говорят об FPS: ваша собственная GPU отрисовывает кадры. Производительность сервера — это совершенно другая метрика, тики в секунду, сколько раз в секунду сервер может выполнить свой полный игровой цикл. Когда TPS падает ниже 20, каждый подключенный игрок ощущает это как «резиновый эффект», задержку попаданий и мобов, отстающих от их фактического положения, независимо от того, насколько мощный ПК у отдельного игрока. Решение этой проблемы полностью лежит на стороне сервера.

Это различие важно, потому что эти две проблемы постоянно смешиваются. Игрок с 300 FPS локально все равно почувствует сервер, работающий со скоростью 12 TPS, и никакие изменения клиентских модов это не изменят. Если вы управляете сервером, особенно оживленным лобби мини-игры с постоянно перезагружаемыми аренами BedWars или SkyWars, именно эти исправления приносят наибольшую отдачу от ваших усилий.

Выберите серверное программное обеспечение, разработанное для высокой нагрузки.

Стандартное серверное программное обеспечение Minecraft и неоптимизированная настройка Spigot практически все выполняют на одном потоке. Paper и форки, такие как Purpur, перестраивают большие части этого конвейера для работы асинхронно и многопоточно, а также поставляются с длинным списком оптимизаций по умолчанию, которых никогда не было в ванильной версии. Это самый большой рычаг воздействия, доступный до того, как вы притронетесь к какому-либо плагину или настройке.

Бумага

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

Пурпур

Бумажная вилка с дополнительными элементами управления и переключателями игровых настроек. Стоит того, если вам нужен больший контроль, не покидая экосистемы Paper.

Ваниль и стандартный Spigot

Функционально, но реальная производительность не раскрывается при работе с чем-то большим, чем небольшой сервер с низкой нагрузкой.

Настраивайте флаги JVM, а не только конфигурацию сервера

Серверы Minecraft работают внутри Java Virtual Machine, и настройки сбора мусора JVM по умолчанию никогда не были оптимизированы для конкретного шаблона использования памяти Minecraft. Флаги Aikar — это широко используемый, публично документированный набор флагов запуска JVM, которые настраивают сборщик мусора именно для этого шаблона, и они значительно сокращают частоту и продолжительность зависаний, связанных со сбором мусора, при реальной нагрузке игроков.

Предварительно сгенерируйте свой мир до того, как игроки его увидят

Одной из самых распространенных причин внезапного падения TPS является генерация сервером новых чанков в реальном времени по мере того, как игроки исследуют необлаянные территории. Эта работа по генерации напрямую конкурирует со всем остальным, что сервер пытается сделать в тот же тик. Такой инструмент, как Chunky, предварительно генерирует чанки заранее, в контролируемом и ограниченном режиме, чтобы игроки, исследующие позже, никогда не вызывали этот скачок.

Для сети мини-игр это имеет меньшее значение для самих арен, которые обычно статичны и малы, чем для любого открытого хаба или лобби-мира, где игроки могут бродить.

Ограничьте дальность просмотра и дальность симуляции

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

НастройкаЧто контролируетРаспространенная ошибка
Дальность просмотраСколько чанков отправляется каждому клиентуОставляется по умолчанию слишком высоким для количества игроков
Дальность симуляцииКак далеко мобы, блоки и редстоун фактически симулируютУстанавливается равной дальности просмотра, когда это не требуется

Расстояние симуляции обычно первое, что стоит сократить. Игрокам не требуется симуляция мобов и редстоуна на таком же расстоянии, как им требуется отрисовка чанков, и снижение этого параметра позволяет восстановить реальное время тика с гораздо меньшим влиянием на ощущения от игры.

Профилируйте, прежде чем гадать

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

  1. Установите Paper или Purpur

    Сначала перейдите с ванильной или стандартной версии Spigot. Это откроет все оптимизации, перечисленные ниже.

  2. Примените флаги Aikar к вашему скрипту запуска

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

  3. Предварительно создайте свой мир с Chunky

    Запустите это в часы низкой нагрузки, чтобы игроки, исследующие мир, никогда не запускали генерацию чанков в реальном времени позже.

  4. Установите дальность обзора и дальность симуляции намеренно

    Сопоставьте их с вашим фактическим количеством игроков и аппаратным обеспечением, а не оставляйте настройки платформы по умолчанию.

  5. Профиль с искрой под реальной нагрузкой

    Запишите отчёт в часы пик и устраните именно то, на что он указывает, а не догадывайтесь.

Производительность на стороне сервера — это не вся история.

Поддержание стабильного TPS — это только половина опыта. Каждый игрок по-прежнему отрисовывает этот стабильный сервер на своем компьютере, и самый надежный сервер не поможет тому, чей собственный клиент задыхается из-за рендеринга, памяти или несовместимого шейдерпака. Если вы управляете сетью BedWars или SkyWars и уже проделали вышеуказанную работу, то вторая половина плавного опыта для ваших игроков — это то, что происходит на их стороне. Именно этот пробел создан для устранения Terminus, настроенная производительность клиента для соответствия работе сервера, которую вы уже выполнили.

FAQ

Получить Terminus

Tuned client performance to match the server work you already did.