Оптимизация сервера является ключевым аспектом, который помогает поддерживать высокую производительность и удовлетворенность игроков. В этой статье рассмотрим основные шаги и техники, которые помогут вам оптимизировать ваш сервер Minecraft Java.
Полное описание ядер для Minecraft Java: Кликабельно
Приобрести сервер Minecraft Java по выгодной цене: Кликабельно
Minecraft сильно зависит от производительности процессора. Одноядерная производительность имеет большое значение, поскольку большинство операций Minecraft выполняются на одном ядре. Рекомендуется использовать процессоры с высокой тактовой частотой (например, Intel i5/i7 или AMD Ryzen).
Количество оперативной памяти также важно для работы сервера. Минимально рекомендуемое количество - 2 ГБ, но для больших серверов лучше использовать 8 ГБ и более. Параметры -Xmx и -Xms в командной строке запуска сервера должны быть настроены в зависимости от доступной памяти.
Использование твердотельных накопителей (SSD) вместо традиционных жестких дисков (HDD) значительно ускоряет загрузку и сохранение мира, что улучшает общую производительность сервера.
На нашем хостинге используются современные процессоры AMD, обеспечивающие высокую производительность и стабильность работы сервера. Для хранения данных на нашем хостинге применяются NVMe SSD, которые обеспечивают максимальную скорость чтения и записи данных, что способствует быстрой и стабильной работе сервера. Наше оборудование и технологии гарантируют надежную и качественную работу Вашего Minecraft сервера.
Оптимизация конфигурационных файлов сервера может значительно повысить его производительность. Основные файлы, на которые стоит обратить внимание:
server.properties
Этот файл содержит основные настройки сервера. Вот некоторые важные параметры, которые можно настроить для улучшения производительности:
network-compression-threshold
Это позволяет установить предельный размер пакета перед тем, как сервер попытается его сжать. Установка большего значения может сэкономить некоторые ресурсы процессора за счет пропускной способности, а установка значения -1 отключает эту функцию. Установка большего значения также может навредить клиентам с медленным сетевым соединением. Если ваш сервер находится в сети с прокси-сервером или на той же машине (с пингом менее 2 мс), отключение этого параметра (-1) будет полезно, так как скорость внутренней сети обычно может справиться с дополнительным несжатым трафиком.
simulation-distance
Расстояние симуляции — это расстояние в чанках вокруг игрока, на котором будет тикать сервер. По сути, это расстояние от игрока, на котором будут происходить события. Это включает в себя плавку в печах, рост культур и саженцев и т. д. Это параметр, который вы хотите специально установить низким, где-то около 3 или 4, из-за существования view-distance. Это позволяет загружать больше фрагментов, не ставя на них галочки. Это эффективно позволяет игрокам видеть дальше без такого же влияния на производительность.
view-distance
Это расстояние в чанках, которое будет отправлено игрокам, аналогично no-tick-view-distance из Paper.
Общее расстояние просмотра будет равно наибольшему значению между simulation-distance и view-distance. Например, если расстояние моделирования установлено на 4, а расстояние просмотра — на 12, общее расстояние, отправляемое клиенту, будет равно 12 чанкам.
spigot.yml
Этот файл конфигурации используется серверами Spigot для дополнительных настроек производительности:
view-distance
Это значение перезаписывает одно из значений server.properties, если оно не установлено по умолчанию. Вы должны оставить его по умолчанию, чтобы иметь и симуляцию, и расстояние просмотра в одном месте для более легкого управления.
mob-spawn-range
Позволяет вам уменьшить диапазон (в кусках), в котором мобы будут спауниться вокруг игрока. В зависимости от игрового режима вашего сервера и количества игроков вы можете уменьшить это значение вместе со spawn-limits в bukkit.yml. Если установить это значение ниже, вам будет казаться, что вокруг вас больше мобов. Это значение должно быть меньше или равно расстоянию обзора, и никогда не должно быть больше расстояния жесткого деспауна / 16.
entity-activation-range
animals: 16
monsters: 24
raiders: 48
misc: 8
water: 8
villagers: 16
flying-monsters: 48
Вы можете установить, на каком расстоянии от игрока должна находиться сущность, чтобы она могла тикать (выполнять действия). Уменьшение этих значений повышает производительность, но может привести к тому, что мобы не будут реагировать, пока игрок не подойдет к ним очень близко. Слишком сильное уменьшение этого параметра может привести к поломке некоторых ферм мобов; чаще всего страдают железные фермы.
entity-tracking-range
players: 48
animals: 48
monsters: 48
misc: 32
other: 64
Это расстояние в блоках, с которого сущности будут видны. Они просто не будут посылаться игрокам. Если установить слишком низкое значение, это может привести к тому, что мобы будут появляться из ниоткуда рядом с игроком. В большинстве случаев это значение должно быть выше, чем entity-activation-range.
tick-inactive-villagers
Это позволяет вам контролировать, должны ли деревенские жители быть отмечены за пределами диапазона активации. В этом случае деревенские жители будут действовать как обычно и игнорировать диапазон активации. Отключение этого параметра повысит производительность, но может запутать игроков в некоторых ситуациях. Это может вызвать проблемы с железными фермами и пополнением торговых запасов.
nerf-spawner-mobs
Вы можете сделать так, чтобы мобы, порожденные спавнером монстров, не имели ИИ. Нерфированные мобы ничего не будут делать. Вы можете заставить их прыгать в воду, изменив spawner-nerfed-mobs-should-jump на true в paper.yml.
merge-radius
item: 3.5
exp: 4.0
Этот параметр определяет расстояние между объединяемыми предметами и эксп-орбами, уменьшая количество предметов на земле. Слишком высокое значение этого параметра приведет к иллюзии исчезновения предметов или сфер экспы при их слиянии. Слишком высокое значение приведет к поломке некоторых ферм, а также позволит предметам телепортироваться через блоки. Нет никаких проверок, чтобы предотвратить слияние предметов через стены. Exp сливаются только при создании.
hopper-transfer
Время в тиках, которое воронки будут ждать, чтобы переместить предмет. Увеличение этого параметра поможет повысить производительность, если на вашем сервере много хопперов, но при слишком высоком значении нарушит часы на основе воронок и, возможно, системы сортировки предметов.
hopper-check
Время в тиках между проверкой бункеров на наличие предмета над ними или в инвентаре над ними. Увеличение этого значения повысит производительность, если на вашем сервере много бункеров, но нарушит часы на основе бункеров и системы сортировки предметов, полагающиеся на потоки воды.
paper.yml
Этот файл конфигурации используется серверами Paper для дополнительных настроек производительности:
delay-chunk-unloads-by
Этот параметр позволяет вам настроить, как долго чанки будут оставаться загруженными после ухода игрока. Это помогает не загружать и выгружать одни и те же чанки, когда игрок перемещается туда-сюда. Слишком высокие значения могут привести к тому, что одновременно будет загружаться слишком много кусков. Для областей, в которые часто телепортируются и загружаются, рассмотрите возможность постоянной загрузки области. Это будет легче для вашего сервера, чем постоянно загружать и выгружать чанки.
max-auto-save-chunks-per-tick
Позволяет замедлить инкрементное сохранение мира, распределяя задачу по времени еще больше для лучшей средней производительности. Вы можете установить значение выше 8, если на сервере более 20-30 игроков. Если инкрементное сохранение не успевает завершиться, то bukkit автоматически сохранит оставшиеся чанки за один раз и начнет процесс заново.
prevent-moving-into-unloaded-chunks
Когда включено, предотвращает перемещение игроков в незагруженные чанки, вызывая синхронизацию, которая перегружает основной поток, вызывая лаг. Вероятность того, что игрок наткнется на незагруженный чанк, тем выше, чем меньше расстояние просмотра.
entity-per-chunk-save-limit
experience_orb: 16
arrow: 16
dragon_fireball: 3
egg: 8
ender_pearl: 8
eye_of_ender: 8
fireball: 8
small_fireball: 8
firework_rocket: 8
potion: 8
llama_spit: 3
shulker_bullet: 8
snowball: 8
spectral_arrow: 16
experience_bottle: 3
trident: 16
wither_skull: 4
area_effect_cloud: 8
С помощью этой записи вы можете установить ограничения на то, сколько сущностей определенного типа может быть сохранено. Вы должны установить лимит для каждого снаряда, по крайней мере, чтобы избежать проблем с сохранением огромного количества снарядов и падением сервера при их загрузке. Вы можете указать здесь любой идентификатор сущности. Пожалуйста, настройте лимит по своему вкусу. Рекомендуемое значение для всех снарядов — около 10. Вы также можете добавить в этот список другие сущности по названиям их типов. Этот параметр конфигурации не предназначен для того, чтобы помешать игрокам создавать большие фермы мобов.
Некоторая информация взята из источников ниже:
Russian: Кликабельно
English: Кликабельно
Установка большого количества плагинов может негативно сказаться на производительности сервера. Вот несколько рекомендаций:
Чанки — это небольшие участки мира Minecraft, которые загружаются по мере необходимости.
Оптимизация управления чанками включает:
Сущности, такие как мобы и предметы, могут потреблять значительное количество ресурсов.
Для управления ими можно:
Использование Aikar Flags при запуске сервера Minecraft Java является одной из лучших практик для оптимизации производительности и управления памятью сервера. Эти флаги разработаны специально для улучшения работы серверов Minecraft и предоставляют оптимальные параметры для JVM.
На серверах от Castle Host уже используются Aikar Flags для оптимизации работы JVM, что позволяет еще больше улучшить производительность и стабильность вашего сервера Minecraft.
java -Xms4096M -Xmx4096M --add-modules=jdk.incubator.vector -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -jar minecraft.jar
Некоторая информация взята из источников ниже:
English: Кликабельно