Загрузка...

Небольшой гайд по оптимизации майнкрафт сервера

Тема в разделе Серверы Minecraft создана пользователем pigeonov 16 мар 2023. (поднята 16 сен 2023) 2114 просмотров

Загрузка...
  1. pigeonov
    pigeonov Автор темы 16 мар 2023 Заблокирован(а) 473 14 май 2019
    [IMG]


    [IMG]

    Статья является переводом paper-chan, special for zelenka.guru

    Данное руководство по оптимизации серверов Minecraft написано в стиле путеводителя, призванного расширить информацию, представленную в официальной документации, и сделать дополнительный акцент на изменениях в игровом процессе и потенциальных побочных эффектах, которые возникают при оптимизации. Его цель - обеспечить более глубокое понимание внутренней работы сервера Minecraft вместо того, чтобы просто раздавать заранее установленные значения, которые часто приносят больше вреда, чем пользы. Надеемся, что это руководство даст вам некоторые полезные сведения!

    Обновление статьи: 16-ое Марта, 2023 | Версия 1.19.3 Build #448

    [IMG]

    Инструменты и программное обеспечение для пользователей Windows

    NotePad++
    Блокнот но лучше

    Bitvise SSH Client
    Лучший SSH клиент


    [IMG]



    Пока мы не начали...





    Для современных версий Minecraft, работающих на настройках по умолчанию (Vanilla), требуется достойное оборудование, и это может оказаться невыполнимым для некоторых малых и средних серверов, где ресурсы сервера очень ограничены. Помимо выбора надежного хостера и подходящего оборудования, оптимизация конфигураций и компромиссы с ванильным геймплеем становятся крайне важными. Внимательно изучите приведенные ниже варианты конфигурации, и вы обеспечите бесперебойную работу!


    [IMG]


    simulation-distance определяет, сколько окружения активно (tick) вокруг игрока.
    view-distance определяет, сколько фрагментов (местности) видно игроку.

    simulation-distance оказывает огромное влияние на производительность, поэтому меньшее значение поможет поддерживать окружение без лагов. Значение по умолчанию для Vanilla Minecraft равно 10, и большинство проектов ферм на YouTube основаны на этом значении. Снижение этого значения повлияет на эти фермы, о чем мы расскажем позже. Лично я бы не опускался ниже 5, чтобы игровой процесс был в какой-то степени приятным; однако, если вы занимаетесь мини-играми или Skyblock, можно опуститься гораздо ниже.

    view-distance обеспечивает более широкий обзор местности и не так сильно влияет на производительность, как simulation-distance, но занимает больше оперативной памяти; увеличивайте значение постепенно, чтобы найти оптимальное место на вашем сервере, если вы решите его увеличить.
    Кроме того, вы можете определить индивидуальные значения для каждого мира в файле spigot.yml, чтобы перезаписать server.properties.
    (О том, как правильно настроить это в разделе конфигурации для каждого мира, мы расскажем позже).


    [IMG]


    Ниже показано, как мобы спавнятся вокруг игрока. График и указанные значения сделаны на основе Vanilla/Paper по умолчанию.

    [IMG]


    Объяснение графика:
    Коричневые цилиндры обозначают зону спавна мобов.
    • Красная сфера обозначает зону спавна мобов (между 24 и 128 блоками).
    • Желтая сфера обозначает зону, свободную от мобов, так как ни один моб не будет спавниться так близко к игроку (24 блока).
    • Любая сущность, находящаяся в зоне 32 блоков (диапазон активации сущностей), будет тикать с нормальной скоростью.
    • Любая сущность, находящаяся между кольцом 32 и 128 блоков, будет отмечена с пониженной скоростью.
    • Любая сущность, попавшая за пределы 128-го блока, мгновенно спаунится.



    [IMG]




    НЕОБХОДИМЫЕ КОНФИГУРАЦИИ ДЛЯ BUKKIT.YML

    spawn-limits:
    monsters: 70
    animals: 10
    water-animals: 5
    water-ambient: 20
    water-underground-creature: 5
    axolotls: 5
    ambient: 15


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


    Глобальный лимит сущностей будет изменяться в зависимости от количества игроков в сети, если в paper-world-defaults.yml для параметра per-player-mob-spawns установлено значение true. Учитывая, что вокруг игрока существуют допустимые места спавна, сервер будет пытаться спавнить сущности до тех пор, пока не будет достигнут лимит спавна.
    Изменение лимитов спавна потребует от вас изучения других связанных конфигураций.

    [IMG]

    Жители генерируются вместе со структурами деревни и размножаются игроками. Именно они вызывают множество проблем с производительностью на большинстве серверов Minecraft. Поскольку они не ограничены опциями конфигурации в bukkit.yml, упомянутыми выше, настоятельно рекомендуется использовать рекомендуемые ниже методы для искусственного контроля их популяции и их влияния на сервер. Это альтернатива ванильному геймплею, но, к сожалению, она необходима, так как большинство игроков не экономят ресурсы и будут производить тонны Деревенских жителей без необходимости.

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


    1.Попытки уменьшить количество тиков у сельских жителей, чтобы снизить нагрузку на сервер.
    2.Ввести жесткий лимит с помощью плагинов типа farm limitor, а затем четко сообщить о лимите игрокам, чтобы они могли скорректировать свой игровой стиль.
    3.Использование плагина AntiVillagerLag для динамического удаления A.I. из жителей деревень, если они используются в качестве продавцов торгового зала.


    ticks-per:
    animal-spawns: 400
    monster-spawns: 1
    water-spawns: 1
    water-ambient-spawns: 1
    water-underground-creature-spawns: 1
    axolotl-spawns: 1
    ambient-spawns: 1
    autosave: 6000


    Этот раздел определяет частоту попыток нереста каждой категории сущностей (значение в тиках).

    Minecraft всегда будет пытаться спаунить существ, пока не достигнет предела спауна, указанного в предыдущем разделе. Изменение числа здесь должно быть вашим вторичным выбором из-за того, что лимит мобов почти всегда будет достигнут. Все, что вы делаете, это просто откладываете надвигающуюся гибель, пожалуйста, сначала установите правильный лимит сущностей в соответствии с лимитами спавна, указанными ранее.
    Вычисление и проверка мобов стоит ресурсов, и всегда лучше сначала уменьшить общий лимит сущностей на лимитах спавна, а затем увеличить тики на конфиг здесь в качестве вторичного буфера. Пожалуйста, используйте /paper mobcaps и /paper playermobcaps для контроля и обеспечения постоянного достижения лимита мобов. Если ваш mobcap не может быть достигнут своевременно, это, скорее всего, признак того, что ваш spawn-limits слишком высок и/или ваш mob-spawn-range слишком мал.

    [IMG]

    НЕОБХОДИМЫЕ КОНФИГУРАЦИИ ДЛЯ SPIGOT.YML

    view-distance: default
    simulation-distance: default


    Это служит для перезаписи идентичного конфига в файле server.properties.

    Если поместить сюда значение, то оно перезапишет значение в файле server.properties
    Значение по умолчанию указывает серверу использовать значение из server.properties

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

    mob-spawn-range: 8

    Радиус в кусках вокруг игрока, в котором сервер пытается породить мобов
    Как уже упоминалось в разделе bukkit.yml, это значение может быть изменено для настройки воспринимаемой плотности мобов.
    Это значение всегда должно быть максимально (Расстояние симуляции - 1) и минимально 3, так как любое существо, находящееся за пределами расстояния симуляции и граничащего с ним чанка, не будет отмечено галочкой.
    Если вы работаете с расстоянием симуляции по умолчанию в Ваниле, равным 10, вы можете изменить это число в пределах 8~3, не следуя вышеуказанному правилу.
    Если, например, ваше расстояние спавна мобов больше, чем расстояние симуляции, воспринимаемая плотность мобов будет ниже из-за того, что монстры будут пытаться спавниться за пределами вашего расстояния симуляции. Очень важно иметь правильное значение.
    Например, если у вас расстояние симуляции равно 6, то диапазон спавна мобов может быть установлен в пределах 3~5.
    Технически, 3 не является минимальным значением, но из-за того, что мобы не будут спауниться в пределах 24 блоков вокруг игрока, нет смысла опускаться ниже 3, так как это резко сократит область спауна и в крайнем случае лимит мобов может быть не достигнут.

    nerf-spawner-mobs: false

    Эта настройка убирает искусственный интеллект у мобов, заспавненный спавнером. Если ваш сервер позволяет игрокам перемещать спавнеры, установка этого параметра в true может уменьшить лаг.
    Если вы решите включить этот параметр, пожалуйста, установите значение true в файле paper-world-defaults.yml, чтобы spawner-nerfed-mobs-should-jump. Это позволит мобам прыгать, так что некоторые фермы будут напоминать функциональные.


    entity-tracking-range:
    players: 48
    animals: 48
    monsters: 48
    misc: 32
    other: 64


    entity-tracking-range определяет, на каком расстоянии в блоках отслеживаются сущности и передаются клиенту, чтобы игроки могли их видеть.
    Paper предоставляет эти опции для того, чтобы вы могли решить, как далеко сущность должна быть отслежена (отображение клиенту) вместо того, чтобы отслеживать все до граничащих блоков (simulation-distance -1). Это оптимизированное решение для борьбы с дорогими тиками сущностей.
    Соответствующие достоинства производительности можно найти в отчете по таймингу в разделе Chunk provider tick.
    Если Chunk provider tick отнимает значительное количество ресурсов, вам следует сначала попытаться уменьшить общее количество сущностей, затем уменьшить расстояние моделирования; и если все остальное не помогло, в крайнем случае уменьшите дальность отслеживания.

    [IMG]

    НЕОБХОДИМЫЕ КОНФИГУРАЦИИ ДЛЯ PAPER-GLOBAL.YML

    chunk-loading:
    autoconfig-send-distance: true
    enable-frustum-priority: false
    global-max-chunk-load-rate: -1.0
    global-max-chunk-send-rate: -1.0
    global-max-concurrent-loads: 500.0
    max-concurrent-sends: 2
    min-load-radius: 2
    player-max-chunk-load-rate: -1.0
    player-max-concurrent-loads: 20.0
    target-player-chunk-send-rate: 100.0


    Paper обеспечивает контроль над тем, как данные чанков отправляются игрокам. Значения по умолчанию, перечисленные выше, должны работать для большинства серверов.
    Если у вас возникли проблемы с загрузкой чанков, пожалуйста, сначала обратитесь за советом в канал #paper-help, не изменяйте значения без полного понимания того, что они делают. Не следуйте никаким случайным руководствам по рекомендуемым значениям, там много дезинформации!
    Для серверов с большим числом одновременно играющих игроков, если загрузка чанков заметно замедляется в часы пик, попробуйте постепенно увеличить max-concurrent-sends и global-max-concurrent-loads, чтобы решить проблему.

    Если у вас включен anti-xray на движке mode 2, это может увеличить использование сети, что косвенно способствует загрузке чанков.
    Если у вас есть какой-либо плагин, который может задерживать потоки netty, он также может тормозить загрузку чанков.

    [IMG]

    Новое в 1.19!

    Все конфиги по умолчанию теперь будут храниться в папке config в корневой папке Minecraft.
    Конфиг для каждого мира теперь может быть определен в paper-world.yml, расположенном в /[имя_мира]/paper-world.yml (По умолчанию файл пуст).
    Paper позволяет вводить пользовательский набор конфигов в paper-world.yml, чтобы перезаписать значения по умолчанию в paper-world-defaults.yml, например, крышки мобов.
    Файл paper-world.yml находится в каждой из папок вашего мира.
    Следующий раздел служит примером, который поможет вам разобраться в структуре файлов...

    Minecraft root folder/config/paper-world-defaults.yml
    spawn-limits:
    monster: 70
    creature: 10
    ambient: 15
    axolotls: 5
    underground_water_creature: 5
    water_creature: 5
    water_ambient: 20

    /world_nether/paper-world.yml
    spawn-limits:
    monster: 80
    creature: -1
    ambient: -1
    axolotls: -1
    underground_water_creature: -1
    water_creature: -1
    water_ambient: -1

    /resource_world/paper-world.yml
    spawn-limits:
    monster: 5
    creature: 30
    ambient: -1
    axolotls: 10
    underground_water_creature: -1
    water_creature: -1
    water_ambient: -1
    keep-spawn-loaded: false


    В приведенном выше примере, установив меньшее значение монстра в resource_world и задав параметр keep-spawn-loaded как false, вы просто сделали мир ресурсов немного более безопасным для шахтеров, а также снизили нагрузку сервера, не сохраняя загруженными куски спавна, поскольку они не используются активно.


    [IMG]

    Миф о гигагерцах
    При выборе процессоров для вашего сервера Minecraft не используйте показатель тактовой частоты для сравнения двух процессоров, если только они не одной модели и производства.
    Короче говоря, выбирайте новейшую архитектуру процессора и самую высокопроизводительную одноядерную модель.

    Выделять больше оперативной памяти =/= лучшая производительность
    Производительность сервера в значительной степени зависит от процессора, а не от оперативной памяти.
    Большинству серверов будет достаточно 10 ГБ, независимо от количества игроков/плагинов. Любой хостер, утверждающий, что увеличение объема оперативной памяти повысит производительность вашего сервера, пытается перепродать вам сервер ради собственной выгоды. Не попадайтесь на эту ловушку.
    Использование оперативной памяти не является показателем проблем с производительностью.
    Показания использования оперативной памяти, собранные с панелей/htop, практически не имеют смысла на правильно настроенной JVM. Вместо этого следите за интервалами и длительностью GC для выявления потенциальных проблем.

    Высокое использование памяти =/= утечка памяти
    Это может быть симптомом утечки памяти, но в большинстве случаев это не обязательно так.
    Сгенерируйте отчет о куче в подозрительный период, когда, по вашему мнению, происходит утечка, с помощью команды /paper heap dump, а затем передайте отчет через Eclipse Memory Analyzer или другие подобные программы для устранения неполадок. Вы также можете обратиться за помощью в Paper Discord.

    TPS не является точным измерением производительности.
    Вместо этого вам следует обратить внимание на MSPT (миллисекунды на тик). Minecraft работает на фиксированной скорости 20 тиков в секунду, поэтому пока ваш MSPT ниже 50, вы будете поддерживать 20 TPS.
    Сервер может показывать средний показатель 20 TPS, но при этом терять большой процент TPS, и в этом случае игроки все равно могут испытывать лаги.

    Минимальное рекомендуемое количество потоков/ядер для сервера Minecraft - ЧЕТЫРЕ.
    Хотя это правда, что основной цикл игры выполняется на одном потоке, есть много задач, которые могут выиграть от наличия нескольких потоков, таких как Netty, плагины, базы данных SQL и т.д.
    Для большинства серверов рекомендуется иметь не менее 4 потоков/ядер. Если вы выбираете хостинг, пожалуйста, примите это во внимание и выберите тарифный план соответственно. Многие из бюджетных хостинг-планов граничат с непригодностью.

    [IMG]

    Надеюсь, вы ничего не пропустили. Первоначальная идея этого руководства заключалась в том, чтобы сделать его как можно более простым для новичков, которые только ступили на хостинг серверов Minecraft. В процессе написания руководства я старался упростить некоторые вещи, пожалуйста, дайте мне знать, если что-то можно объяснить лучше или улучшить. Я бы хотел, чтобы это руководство было как можно более точным и актуальным, поэтому если вы найдете какую-либо ошибку, пожалуйста, свяжитесь со мной через Телеграм @pigeonovrip или в личных сообщениях форума

    Отдельное спасибо

    Харизма крутой челик, сподвигнул меня на перевод, написание статьи
    STEALYOURBRAIN просто крутой челик, монитивирует

    [IMG]
     
    16 мар 2023 Изменено
  2. Харизма
    Харизма 16 апр 2023 Заблокирован(а) 868 13 янв 2018
    Спасибо за гайд, ты пусичка!
     
  3. мопсик
    Отличная статья! Спасибо большое, буду юзать)
     
  4. Asdl
    Asdl 4 июл 2023 Реклама 500р месяц 2739 5 апр 2022
    Будет актуально всегда ведь МАЙНКРАФТ ЭТО МАЯ ЖИЗНЬ!!!
     
Top