Это важное напоминание о том, что изменение конфигурационных файлов на сервере должно быть осознанным и целенаправленным, особенно на новых версиях игры. Все изменения следует проводить с учетом специфики каждого сервера и его потребностей. Если ваш сервер нормально функционирует и не испытывает проблем с производительностью, то нет необходимости вносить изменения в стандартные конфигурационные файлы. Внесение случайных изменений может привести к нарушению ванильного игрового процесса и создать проблемы, которые будут трудно исправить. Рекомендуется внимательно изучать описание под каждой настройкой и осуществлять изменения только в тех случаях, когда это действительно необходимо и обосновано. Непродуманные изменения могут повлиять на стабильность и работоспособность сервера. Отдельное внимание следует уделить настройке Anti-Xray от Paper или изменению сидов в файле spigot.yml для каждого сервера. Эти настройки могут помочь обеспечить безопасность и защиту сервера от нежелательных изменений или атак. Это важные рекомендации для владельцев серверов, которые помогут избежать многих проблем и обеспечить стабильную работу проекта. Давайте разберем их по пунктам:
Эти настройки помогают очистить консоль от ненужных сообщений.
Позволяет указать уникальные значения для генерации шахт и кладов на пляжах, являясь отличным дополнением к разделу с сидами в spigot.yml.
Эти настройки по сути отключают возможность создавать лаг-машины на движущихся стойках для брони.
Выключает возможность создать цикличный сигнал редстоуна с помощью двух наблюдателей. Это полезно для сервера, но неудобно для игроков.
Отключает поиск сокровищ дельфинами, что улучшает производительность сервера.
Настройки для снежных големов, уменьшающие нагрузку на сервер.
Спруты будут подчиняться параметрам entity_activation_range из spigot.yml.
Пауки не смогут лазать по границе мира.
Настройки для жителей, улучшающие производительность и поведение NPC.
Настройки для зомби-жителей, определяющие время исцеления.
Зомби не будут агрессировать на жителей при значении TPS ниже, чем указано в lagging-threshold.
Эти настройки помогут оптимизировать работу сервера, сохраняя при этом баланс между производительностью и игровым процессом.
- Не используйте слитый софт: Это означает, что не следует использовать нелегально полученное программное обеспечение. Платные плагины обычно предоставляются за деньги по причине их качества и поддержки. Если нет возможности приобрести платные плагины, лучше остановиться на бесплатных альтернативах, которых также достаточно.
- Правильно выбирайте версию: Рекомендуется использовать последние версии для обеспечения безопасности и стабильности сервера. Старые версии могут содержать уязвимости, а также подвержены использованию ботов и других нежелательных аспектов.
- Не используйте датапаки с функциями: Большинство датапаков созданы для одиночной игры и могут быть неэффективны на сервере. Вместо этого следует использовать более оптимизированные плагины.
- Делайте резервное копирование данных (бэкапы): Это крайне важно, чтобы избежать потери данных в случае непредвиденных событий или сбоев.
- Избегайте дурные хостинги: Важно выбирать надежные хостинг-провайдеры и избегать тех, которые предлагают недостаточные ресурсы или низкое качество услуг.
- Адекватно выбирайте серверное оборудование: Важно обращать внимание на характеристики серверов и выбирать оптимальное соотношение цены и качества.
- Не используйте сомнительные форки: Предпочтительно использовать актуальные и обновляемые ядра, такие как Paper, чтобы обеспечить стабильную и безопасную работу сервера.
Выбор ядра для сервера Майнкрафт
Что не следует использовать:
- Yatopia: Заброшенный форк, который больше не поддерживается.
- Airplane: Еще один заброшенный форк, который может быть нестабильным.
- Patina: Экспериментальный форк, который может быть несовместимым с некоторыми плагинами или функциями.
- Mirai: Еще один заброшенный форк, который не рекомендуется к использованию.
- Sugarcane: Экспериментальный форк с ограниченной поддержкой и нестабильностью.
- JettPack: Заброшенный форк, который не рекомендуется к использованию.
- Fusion: Еще один экспериментальный форк, который может привести к проблемам с производительностью и стабильностью.
- Paper: Широко используемый и поддерживаемый форк, который обеспечивает хорошую производительность и стабильность.
- Pufferfish: Еще один надежный форк, который может быть хорошим выбором для сервера Minecraft.
- Purpur: Рекомендуемый вариант для современных проектов, так как обеспечивает оптимизацию и дополнительные функции.
Прогрузка карты сервера Майнкрафт
Генерация чанков - неприятный процесс для сервера, особенно на 1.18+. Чтобы избежать лагов, прогрузите чанки заранее. Чтобы подсчитать количество места на диске в прогруженной карте можете использовать этот калькулятор: World Size Calculator.Как прогрузить карту на сервере майнкрафт"
- Скачайте и установите плагин Chunky.
- Используйте команды:
/chunky radius <размер_в_блоках_в_каждую_сторону>
для указания размера карты./chunky world <название_мира>
для выбора мира для прогрузки.
- Установите ванильный барьер:
- Используйте
/worldborder set <размер_в_блоках_в_каждую_сторону_умноженный_на_2>
. - Для более уникального барьера используйте ChunkyBorder.
- Используйте
- Начните прогрузку карты командой
/chunky start
.
Конфигурация сервера Майнкрафт
Для нахождения и изменения этих настроек используйте комбинацию клавиш CTRL+F в текстовом редакторе.server.properties
network-compression-threshold: 128/256/512
Наименьшее значение означает большее сжатие трафика и увеличение нагрузки на процессор, но положительно сказывается на игроках с плохим интернетом. Ставьте наибольшее значение, если у вас ограниченный месячный трафик.enforce-secure-profile=false
Выключает новомодную (1.19.1) проверку сообщений в чате. Используйте плагин AntiPopup, чтобы полностью убрать репорты.entity-broadcast-range-percentage=75/100
Определяет насколько близко игрок должен быть к сущностям, чтобы сервер отправил их ему на рендер. Ставьте наименьшее значение, если ваш сервер сильно нагружен уникальными сущностями (например, на стойках для брони).max-tick-time=-1
Указывает время (в тиках) через которое сервер будет автоматически выключен при сильном залаге. Частично заменяется WatchDog'ом из Paper, поэтому может быть выключено.use-native-transport=true
Включает оптимизированную отправку пакетов. Ставьте true только если сервер стоит на Linux. При создании модового сервера - лучше оставить false.view-distance: 2-4
Некий официальный аналог no-tick чанков из Paper который появился в официальном ядре недавно. Данная настройка сильно влияет на игровой процесс!simulation-distance: 4-6
Чанки рядом с игроком, в которых будет происходить жизнь. Слишком маленькие значения ломают фермы. Данная настройка сильно влияет на игровой процесс!idle-timeout: 10-20
Устанавливает время, после которого бездействующий игрок будет считаться сервером в AFK. На Minecraft Wiki указано, что данное значение исчисляется в минутах.allow-flight: true
Плохой пример реализации "античита", встроенный в ядро. Установите отдельный плагин на античит.snooper-enabled: false
Выключает отправку некоторых данных в Mojang. Нельзя выключить в новых версиях.sync-chunk-writes=false
Выключает сихронную (однопоточную) генерацию чанков. Автоматически выключено в Paper и его форках, имеет смысл изменять значение только если у вас сервер на Fabric.bukkit.yml
query-plugins: false
Выключает возможность узнать плагины сервера через стороние ресурсы.spawn-limits:
- monsters: 20 # Враждебные мобы.
- animals: 8 # Мирные мобы.
- water-animals: 3 # Водные существа (спруты, etc)
- water-ambient: 1 # Мелкие рыбы
- axolotls: 3 # Аксолотли
- water-underground-creature: 3 # Подземные спруты
- ambient: 1 # Летучая мышь
period-in-ticks: 300
Время, через которое сервер выгрузит неактивный чанк из памяти. В тиках.ticks-per:
- animal-spawns: 400/420
- monster-spawn: 10/12
- water-spawns: 600/800
- axolotl-spawns: 400/600
- water-ambient-ambient: 600/800
- water-underground-creature-spawns: 400/600
- ambient-spawns: 1800/2200
autosave: 6000/16000
Автоматическое сохранение данных сервера. В тиках. Если сервер работает нестабильно и постоянно падает - не трогайте.paper-global.yml
timings:
- enabled: false
- verbose: false
use-rgb-for-named-text-colors:
- false
max-joins-per-tick:
- 1
fix-entity-position-desync:
- true
use-dimension-type-for-custom-spawners:
- true
use-alternative-luck-formula:
- true
chunk-system:
gen-parallelism: default io-threads: -1- Значение -1 означает, что сервер будет потреблять половину доступных ресурсов.
- Укажите количество доступных вашему серверу ядер процессора (как минимум одно ядро оставляйте свободным для системы).
paper-world-defaults.yml
Расстояние от игрока для пропадания сущностей:
Эта настройка определяет расстояние в блоках от игрока, на котором ненужные сущности будут автоматически удаляться. Это влияет на игровой процесс. YAML:
despawn-ranges:
ambient:
hard: 56
soft: 30
axolotls:
hard: 56
soft: 30
creature:
hard: 56
soft: 30
misc:
hard: 56
soft: 30
monster:
hard: 56
soft: 30
underground_water_creature:
hard: 56
soft: 30
water_ambient:
hard: 56
soft: 30
water_creature:
hard: 56
soft: 30
- parrots-are-unaffected-by-player-movement: true: Попугаи не будут часто сбрасываться с плеча игрока.
- item-frame-cursor-limit: 64: Лимит отметок на карте.
- delay-chunk-unloads-by: 7s: Задержка выгрузки чанков.
- zombies-target-turtle-eggs: false: Зомби не будут атаковать яйца черепах, что предотвращает разрушение ферм.
- item-frame-cursor-update-interval: 20: Частота обновления отображения игрока на карте.
- disable-end-credits: true: Отключает показ титров игроку при первом прыжке в портал Края.
- fix-items-merging-through-walls: true: Исправляет возможность предметам сливаться сквозь стены.
- keep-spawn-loaded: false: Отключает постоянную прогрузку чанков спавна.
- max-entity-collisions: 2: Определяет количество сущностей, которые могут столкнуться друг с другом.
- max-auto-save-chunks-per-tick:8: Максимальное количество чанков, которые сервер может сохранять за тик.
- Для сервера с более высоким онлайном, рекомендуется увеличить значение max-auto-save-chunks-per-tick для обеспечения более эффективного сохранения чанков. Увеличение этого значения поможет снизить вероятность возникновения проблем и фризов из-за слишком большой нагрузки на сохранение чанков в момент.
- mob-spawner: 4-8: Это время в тиках, через которое спавнер будет спавнить сущностей.
- disable-chest-cat-detection: true: Выключает возможность котам искать сундуки. Это оптимизация!
- disable-relative-projectile-velocity: true
- redstone-implementation: ALTERNATE_CURRENT: Позволяет серверу использовать альтернативную систему редстоуна (практически нет разницы с ванильной в механиках).
- prevent-moving-into-unloaded-chunks: true: Запрещает игроку быстро грузить непрогруженные чанки, телепортируя его назад, пока чанк не будет создан.
- update-pathfinding-on-block-update: false
- armor-stands:
- do-collision-entity-lookups: false
- tick: false: Выключает бессмысленный тик стоек для брони. Если у Вас есть плагины на уникальных сущностей (ModelEngine, ItemsAdder, Oraxen) - не изменяйте значение на фальш.
- optimize-explosions: true
- markers:
- tick: false
- hopper:
- cooldown-when-full: true
- disable-move-event: true
- ignore-occluding-blocks: true: Весомые патчи для оптимизации одного из самых жрущих - воронок. Естественно влияет на ванильность, но дает нехилый прирост производительности. Может негативно влиять на другие плагины, но это уже проблема разработчика плагина.
- non-player-arrow-despawn-rate: 5
- creative-arrow-despawn-rate: 5: Влияет на скорость удаления стрел игроков в креативе и мобов. В тиках.
spigot.yml
mob-spawn-range: 3-4
Радиус в чанках от игрока, в пределах которого будут появляться мобы. Эта настройка значительно влияет на игровой процесс, поскольку определяет частоту появления мобов и их количество, что может изменить уровень сложности и динамику игры.hanging-tick-frequency: 250
Интервал проверки декоративных сущностей, таких как стойки для брони, рамки и картины. Увеличение этого значения может привести к мелким визуальным багам у игроков, однако уменьшает нагрузку на сервер.restart-on-crash: false
Отключает автоматический перезапуск сервера при краше. Рекомендуется использовать флаги автоперезапуска с сайта flags.sh, чтобы обеспечить более надежную работу сервера.save-user-cache-on-stop-only: true
Эта настройка сохраняет кеш пользователей только при остановке сервера, что может снизить нагрузку на сервер во время работы.merge-radius:
- item: 4.5
- exp: 8.75
netty-threads: 4 / 6
Количество потоков процессора, которое сервер будет использовать для обработки трафика. Рекомендуется указывать число, которое равно одной четверти от общего числа доступных ядер процессора.arrow-despawn-rate: 300
Время в тиках до удаления стрелы, выпущенной игроком. Установка этого значения помогает контролировать количество стрел в игре и улучшить производительность.trident-despawn-rate: 600
Время в тиках до удаления трезубца, брошенного игроком. Аналогично стрелам, это значение помогает управлять количеством трезубцев в игре.hopper-amount: 3-9
hopper-transfer: 8-24
hopper-check: 8-24
Эти параметры полностью настраивают работу воронок на сервере. Значения зависят от количества игроков и количества используемых воронок. Эти настройки значительно влияют на игровой процесс и производительность сервера.nerf-spawner-mobs: true
Отключает AI у мобов, появляющихся со спавнеров. Полезно для больших серверов с множеством ферм, уменьшая нагрузку на сервер. Эта настройка также влияет на игровой процесс, делая фермы менее эффективными.log-villager-deaths: false
Отключает логирование смертей жителей, что помогает сократить объем логов и улучшить производительность сервера.log-named-deaths: false
Отключает логирование смертей названных сущностей, что также способствует сокращению объема логов.max-tnt-per-tick: 10-50
Ограничивает максимальное количество взрывов динамита за тик. Значение зависит от типа сервера и количества игроков. Это помогает предотвратить перегрузку сервера при массовых взрывах.max-tick-time:
- tile: 8
- entity: 16
Настройка тиков сущностей
Если вы не испытываете проблем с производительностью от обработки сущностей на сервере, лучше не изменять эти параметры. Данная настройка существенно влияет на игровой процесс!Описание
Эти настройки управляют диапазоном в блоках, в котором сущности будут "активированы". Сущности вне этого диапазона будут тикать с меньшей скоростью, чтобы предотвратить задержку сервера. Изменение этих значений может негативно повлиять на игровой процесс, поэтому редактировать их следует с осторожностью. Уменьшение этих значений может значительно повысить производительность, но за счет влияния на поведение игрового процесса. Понижение этих значений может повлиять на фермы предметов и монстров, но практически не должно повлиять на нормальное поведение. YAML:
entity-activation-range:
animals: 10
monsters: 12
raiders: 12
misc: 4
water: 4
villagers: 8
flying-monsters: 24 # Не указывайте слишком низкое значение здесь, если не хотите увидеть застрявшего в воздухе Дракона.
wake-up-inactive:
animals-max-per-tick: 2
animals-every: 1200
animals-for: 60
monsters-max-per-tick: 2
monsters-every: 400
monsters-for: 60
villagers-max-per-tick: 1 # Повысьте данное значение, если испытываете проблемы с жителями.
villagers-every: 600
villagers-for: 60
flying-monsters-max-per-tick: 2
flying-monsters-every: 200
flying-monsters-for: 60
villagers-work-immunity-after: 100
villagers-work-immunity-for: 20
villagers-active-for-panic: true # Если установлено значение false, фермы железа не будут работать.
tick-inactive-villagers: false
ignore-spectators: true
Пояснения
- animals, monsters, raiders, misc, water, villagers, flying-monsters: Радиус в блоках для активации соответствующих сущностей.
- wake-up-inactive: Настройки для "пробуждения" неактивных сущностей, чтобы они тикали с нормальной скоростью в течение короткого времени.
- animals-max-per-tick, monsters-max-per-tick, villagers-max-per-tick, flying-monsters-max-per-tick: Максимальное количество соответствующих сущностей, которые будут "пробуждены" за тик.
- animals-every, monsters-every, villagers-every, flying-monsters-every: Интервал в тиках между "пробуждениями".
- animals-for, monsters-for, villagers-for, flying-monsters-for: Время в тиках, на которое сущности будут "пробуждены".
- villagers-work-immunity-after, villagers-work-immunity-for: Настройки для иммунитета работы жителей, чтобы предотвратить их неактивность.
- villagers-active-for-panic: Включает активность жителей при панике. Если установлено значение false, фермы железа не будут работать.
- tick-inactive-villagers: Определяет, будут ли неактивные жители тикать.
- ignore-spectators: Игнорирует зрителей при обработке тиков сущностей.
purpur.yml
use-alternate-keepalive: true
Эта настройка улучшает опыт игры для игроков с плохим интернет-соединением, увеличивая время до их кика из-за плохого подключения. Однако она несовместима с TCPShield.dont-send-useless-entity-packets: true
Отключает отправку ненужных пакетов сущностей, что помогает снизить нагрузку на сеть и сервер.disable-mushroom-updates: true
disable-note-block-updates: true
disable-chorus-plant-updates: true
Эти настройки отключают обновления для нотных блоков, грибов и хорусов. Лучше не трогать их, если сервер больше склонен к ванильной игре, но рекомендуется отключить, если используете ItemsAdder от LoneDev.max-joins-per-second: true
Ограничивает максимальное количество присоединений к серверу в секунду, что помогает предотвратить перегрузку сервера.breeding-delay-ticks: 12000
Увеличивает время отката размножения животных в два раза по сравнению с ванильной настройкой. Настраивается отдельно для каждой сущности, которую можно кормить.fix-projectile-looting-transfer: true
Исправляет баг MC-3304, связанный с переносом зачарования добычи на стрелы и другие снаряды.disable-give-dropping: true
Команда /give не будет выбрасывать предметы из переполненного инвентаря, предотвращая потерю предметов.fix-stuck-in-portal: true
Предотвращает застревание игрока в портале-ловушке, автоматически телепортируя его обратно через некоторое время.disable-drops-on-cramming-death: true
Отключает выпадение предметов из сущностей при смерти от удушения. Это полезно, если игроки строят слишком много ферм, работающих таким образом.teleport-if-outside-border: true
Телепортирует игрока на нулевые координаты, если он каким-то образом оказался за барьером мира. На новых версиях это работает не всегда корректно, но предотвращает выход игрока за пределы мира.arrow:
- movement-resets-despawn-counter: false: Таймер на исчезновение стрелы не будет обновляться при её движении.
invulnerable-while-accepting-resource-pack: true
Игрок будет неуязвим, пока устанавливает серверный ресурспак.sleep-ignore-nearby-mobs: true
Игроки смогут ложиться спать даже рядом с агрессивными мобами.entities-can-use-portals: false
Запрещает сущностям использовать порталы, что предотвращает создание загрузчиков чанков. Не рекомендуется отключать, если игрокам нужно перемещать мобов между мирами.logger:
YAML:
logger:
suppress-init-legacy-material-errors: true
suppress-ignored-advancement-warnings: true
suppress-unrecognized-recipe-errors: true
suppress-setblock-in-far-chunk-errors: true
suppress-library-loader: true
Эти настройки помогают очистить консоль от ненужных сообщений.
seed:
YAML:
seed:
structure:
buried_treasure: -1 # Случайное число от -2147483648 до 2147483647
mineshaft: -1 # Случайное число от -2147483648 до 2147483647
Позволяет указать уникальные значения для генерации шахт и кладов на пляжах, являясь отличным дополнением к разделу с сидами в spigot.yml.
armorstand:
YAML:
armorstand:
step-height: 0.0
set-name-visible-when-placing-with-custom-name: true
fix-nametags: true
can-movement-tick: true
can-move-in-water: true
can-move-in-water-over-fence: true
place-with-arms-visible: true
Эти настройки по сути отключают возможность создавать лаг-машины на движущихся стойках для брони.
lagging-threshold: 17.0
При значении TPS ниже этого порога Purpur будет принимать меры для оптимизации, считая сервер лагающим.observer:
YAML:
observer: disable-clock: true
dolphin:
YAML:
dolphin: disable-treasure-searching: true # Дельфины не будут искать сокровища. Оптимизация.
Отключает поиск сокровищ дельфинами, что улучшает производительность сервера.
snow_golem:
YAML:
snow_golem:
leave-trail-when-ridden: false # Снежные големы не будут оставлять за собой след снега.
min-shoot-interval-ticks: 300 # Снежные големы будут стрелять раз в 10 секунд, вместо раза в секунду.
max-shoot-interval-ticks: 300
Настройки для снежных големов, уменьшающие нагрузку на сервер.
squid:
YAML:
squid: immune-to-EAR: false
spider:
YAML:
spider: can-climb-world-border: false
villager:
YAML:
villager:
brain-ticks: 32
use-brain-ticks-only-when-lagging: true # Жители будут активны раз в 32 тика при значении TPS ниже lagging-threshold.
breeding-delay-ticks: 12000
allow-trading: true # Если значение false, жители не будут торговать с игроком.
lobotomize:
enabled: true
check-interval: 100
display-trade-item: false # Отключает отображение предмета для продажи. Оптимизация.
spawn-iron-golem: # Лимит спавна железных големов на определенный радиус.
radius: 5
limit: 5
Настройки для жителей, улучшающие производительность и поведение NPC.
zombie_villager:
YAML:
zombie_villager:
curing_time:
min: 1300
max: 3000
cure:
enabled: true # Если значение false, выключает возможность исцелить зомби-жителя.
Настройки для зомби-жителей, определяющие время исцеления.
zombie:
YAML:
zombie: aggressive-towards-villager-when-lagging: false
Настройка AFK ферм
Решите сами, нужны ли вам AFK фермы на вашем сервере. Вы можете установить idle-timeout в файле server.properties на нужное вам значение в минутах. Это позволит регулировать поведение игроков, которые находятся в состоянии AFK (отошел от клавиатуры). YAML:
idle-timeout:
kick-if-idle: false # Будет кикать игрока после его выхода в AFK.
tick-nearby-entities: false # Сущности рядом с игроком в AFK не будут тикаться сервером, что снижает нагрузку.
count-as-sleeping: false # Игроки в AFK не будут считаться спящими.
update-tab-list: false # Не будет обновлять список игроков в TAB при нахождении в AFK.
mobs-target: false # Отключает агрессию мобов на игрока в AFK, что предотвращает их смерть.
Подробное описание параметров:
- kick-if-idle: false: Если установлено в true, игрок будет автоматически кикнут с сервера после определенного времени бездействия.
- tick-nearby-entities: false: При установке в false, сущности рядом с игроком в AFK не будут тикаться сервером. Это помогает снизить нагрузку на сервер, так как не активируются обработчики сущностей.
- count-as-sleeping: false: Игроки в состоянии AFK не будут считаться спящими, что может быть полезно для тех, кто не хочет, чтобы состояние AFK игроков влияло на игровой процесс.
- update-tab-list: false: Не будет обновлять список игроков в TAB при нахождении в AFK, что может уменьшить нагрузку на сервер и исключить лишние обновления интерфейса.
- mobs-target: false: Отключает агрессию мобов на игроков в состоянии AFK. Это предотвращает смерть AFK игроков от агрессивных мобов и улучшает их безопасность.
pufferfish.yml
Конфигурация pufferfish.yml
Файл конфигурации pufferfish.yml изначально содержит достаточно сбалансированные настройки. Изменяйте их только при наличии проблем с производительностью!Установка максимального времени жизни для некоторых сущностей
Эти параметры помогут избежать создания лаг-машин на снежках и яйцах. YAML:
entity_timeouts:
SNOWBALL: 200
EGG: 200
LLAMA_SPIT: 40
FIREBALL: 100
DRAGON_FIREBALL: 100
Максимальная загрузка чанков для снарядов
Устанавливает максимальное количество чанков, которые может загрузить любой снаряд за время своего существования. Это полезно, но может вызвать проблемы с застреванием трезубцев и стрел в чанках. YAML:
max-loads-per-projectile: 4-6
Начальная дистанция
Определяет, насколько далеко сущность должна находиться от игрока, чтобы DAB начал работать. YAML:
start-distance: 6-8
Частота обновления
Указывает, раз в сколько тиков будут обновляться самые дальние (по отношению к игроку) сущности. Это может быть крайне полезно, но может негативно повлиять на производительность различных ферм. YAML:
max-tick-freq: 35-40
Модификатор дистанции активации
Определяет, насколько расстояние влияет на тик сущностей. Значение 7 считается оптимальным. YAML:
activation-dist-mod: 7
Флаги запуска сервера
Флаги запуска сервера — это специальные параметры, которые используются при запуске сервера для настройки его производительности. Они помогают Java эффективно управлять памятью, выгружая лишнюю информацию и собирая мусор, что позволяет избежать перегрузки сервера и крашей из-за нехватки оперативной памяти.
Зачем нужны флаги запуска?
Флаги запуска нужны для:- Оптимизации использования памяти: Помогают Java лучше управлять доступной оперативной памятью, избегая её переполнения.
- Сборка мусора: Настраивают процесс сборки мусора, что помогает избавиться от ненужных объектов в памяти и снизить нагрузку на сервер.
- Стабильность работы: Улучшают стабильность сервера, предотвращая краши и перегрузки.
Удобный редактор флагов запуска
Для настройки флагов запуска существует удобный редактор, который позволяет легко и быстро подобрать оптимальные параметры для вашего сервера. Эти настройки подходят для большинства серверов без необходимости внесения изменений.Пример флагов запуска:
Флаги запуска добавляются в команду запуска сервера. Вот пример настроенных флагов запуска: Bash:
#!/usr/bin/env bash
while true; do
java -Xms8192M -Xmx8192M \
-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 \
-Dfile.encoding=UTF-8 \
-jar server.jar
echo Restarting in 5 seconds...
echo Press CTRL + C to cancel.
sleep 5
done
Пояснение к параметрам:
- -Xms8192M и -Xmx8192M: Задают начальный и максимальный размер кучи памяти соответственно.
- -XX:+UseG1GC: Включает использование сборщика мусора G1.
- -XX:+ParallelRefProcEnabled: Включает параллельную обработку ссылок.
- -XX:MaxGCPauseMillis=200: Устанавливает целевое время паузы сборщика мусора в миллисекундах.
- -XX:+UnlockExperimentalVMOptions: Разблокирует экспериментальные параметры JVM.
- -XX:+DisableExplicitGC: Отключает явную сборку мусора вызванную через System.gc().
- -XX:+AlwaysPreTouch: Инициализирует все страницы памяти при старте JVM, чтобы избежать задержек в будущем.
- -XX:G1HeapWastePercent=5: Указывает процент кучи, который можно тратить на фрагментацию перед запуском смешанной сборки.
- -XX:G1MixedGCCountTarget=4: Устанавливает цель для количества смешанных циклов сборки мусора G1.
- -XX:InitiatingHeapOccupancyPercent=15: Указывает процент заполнения кучи, при котором начнется сборка мусора.
- -XX:G1MixedGCLiveThresholdPercent=90: Указывает процент живых объектов, которые должны оставаться в молодом поколении после смешанной сборки.
- -XX:G1RSetUpdatingPauseTimePercent=5: Устанавливает процент времени паузы, который может быть использован для обновления RSet.
- -XX:SurvivorRatio=32: Устанавливает соотношение памяти между областями Survivor и Eden.
- -XX:+PerfDisableSharedMem: Отключает использование общей памяти для перфоманс данных.
- -XX:MaxTenuringThreshold=1: Устанавливает порог для продвижения объектов из молодого поколения в старшее.
- -Dusing.aikars.flags=JVM Tuning: Optimized G1GC for Minecraft - Aikar's Thoughts: Указывает источник использования флагов Aikar.
- -Daikars.new.flags=true: Включает использование новых флагов Aikar.
- -XX:G1NewSizePercent=30: Указывает процент кучи, который будет выделен для нового поколения.
- -XX:G1MaxNewSizePercent=40: Указывает максимальный процент кучи, который может быть выделен для нового поколения.
- -XX:G1HeapRegionSize=8M: Устанавливает размер региона кучи.
- -XX:G1ReservePercent=20: Указывает процент памяти, который будет зарезервирован для предотвращения фрагментации.
- -Dfile.encoding=UTF-8: Устанавливает кодировку файлов UTF-8.