Оптимизация  Сервера Minecraft | by Rgferg1

Руководство Оптимизация Сервера Minecraft | by Rgferg1

Поддерживаемые версии
  1. 1.8
  2. 1.9
  3. 1.10
  4. 1.11
  5. 1.12
  6. 1.13
  7. 1.14
  8. 1.15
  9. 1.16

Перед чтением гайда, убедитесь, что у вас тормозит сервер не из за ддоса/слабого железа. Если у вас таких проблем нет, то читайте.

Данный гайд будет дополнятся. Здесь описаны не все способы оптимизации. Все написанное составлено из моего личного опыта.

Привет. Ты наверно задавал себе вопросы:

  • Как оптимизировать сервер майнкрафт?
  • Почему лагает сервер майнкрафт?
  • Почему сильно тормозит сервер майнкрафт?
  • Почему низкий TPS на сервере майнкрафт?
  • Как избавится от лагов сервера майнкрафт?
Ответ найдешь в этом мануале! (Да, вопросы написаны специально, чтобы выводить мануал в поисковики...)

Введение - ТПС


Добрый вечер, пользователи. Каждый сталкивался с такой проблемой, что тормозит сервер. При таких условиях будет низкий TPS.

Что такое TPS?
TPS (Ticks per Second)
— это число тактов за секунду. Чем более высокий данный показатель, тем большая производительность сервера. В норме показатель 20.0. TPS может существенно снижаться в случае значительной нагрузки на сервер. И в консоль выводятся такие строчки: [Server thread/WARN]: Can't keep up! Is the server overloaded? Running 9999ms or 9999 ticks behind

Чтобы посмотреть значение TPS введите команду: /tps

Показатели:
  • 20.0 = Супер!
  • 19.95-19.99 = Средне. Незаметная потеря. Большинство серверов находятся на таком значении.
  • 18.5-19.94 = Не очень хорошо, но в игре это незаметно.
  • 16.0-18.4 = Плохо. Вам определенно нужно исправить это, если это ваш средний показатель.
  • <16.0 = Неиграбельно...

1597362967694.png

1597362872608.png


Если вдруг у вас низкий TPS, то введите эти команды поочередно: /timings on, подождите минут 10, /timings report, /timings off

Вам в консоль отобразится ссылка. Переходим по ней.

1597363141251.png


И нам выдает "тайминги". Обычно их просят на форумах в темах о лагах. Чтобы подробнее узнать в чем проблема и причина. По процентам можно понять, что больше нагружает сервер. Например энтити, механизмы или что то другое.

Введение - Пинг

Ping - отражает, сколько времени (в миллисекундах) требуется данным для обработки и перемещения между клиентом и сервером. Чем дальше клиент отдален от сервера, тем больше времени может занять этот перенос. Другими распространенными факторами, влияющими на пинг, являются перегруженные или медленные соединения.

Если вы хотите уменьшить пинг, то берите сервера ближе к своим игрокам. Москва, франция и тд.

Показатели (для Minecraft):
  • 1-90 = Супер!
  • 91-179 = Хорошо. Возможно, небольшие проблемы в PVP. В выживании это не заметно.
  • 180-299 = Плохо.
  • 300-499 = Очень плохо.
  • 500+ = Ужасно.
Ядро

Если вы только начинаете свой путь в серверостроении, то можете начать с Paper.
Для более опытных - на момент редактирования статьи рекомендовать что-то конкретное стало сложно, так как каждый форк Paper как будто преследует какие-то свои цели, а работа над Yatopia, которая собирала все хорошие патчи воедино - была остановлена.
Вот тут: https://docs.google.com/spreadsheets/d/1rlcvu3hWrn4iDM9CLFvQzTGwtPAhwRLmjb1Y8Ntds9I/htmlview#gid=0
имеется довольно подробное сравнение по производительности популярнейших форков Paper.


Плагины

WorldBorder - Позволяет ограничить/прогрузить мир.
LagAssist - Плагин включает в себя множество инструментов, которые можно использовать для поиска источников задержек и их удаления.
Villager Optimiser - Отрубает умный ии жителей. Теперь они "простые". Могут быть проблемы с фермами связанные с жителями.
StackMob - Enhance your servers performance without the sacrifice - Стакает мобов. В одном мобе может быть например 15 таких же.
Mob Farm Manager Hopper support - Ограничение мобов на чанк, оптимизированные хопперы и много другого.
Simple Anti-Mob Lag - Мобы в толпе не двигаются. При низком тпс они замораживаются. И много другое.
ServerBooster - Мощный инструмент для оптимизации сервера. Много функций. Перечислять нет смысла, хороший плагин.

Совет: Не скачивайте платные плагины с неофициальных источников.


Датапаки

По моему опыту датапаки связанные с мобами/генерацией, очень плохо влияют на сервер. Перед тем, как ставить на сервер, протестируйте на localhost. Также датапаки при неправильном удалении могут сломать карту. Датапаки лучше заменить плагинами.


Spigot.yml

Давайте оптимизируем конфиг нашего ядра. А именно spigot.yml. Я могу немножко ошибаться. Не бейте палками. Помните, что вы меняете настройки на свой срах и риск!

Описание я перевел через Яндекс.Переводчик. Если что-то непонятно, можете написать в комментарии.

save-user-cache-on-stop-only - Включение этого параметра предотвращает постоянное сохранение пользовательских данных во время работы игроков в сети, что повышает производительность сервера. Однако, если ваш сервер выйдет из строя, пользовательские данные не будут сохранены, поэтому делайте резервные копии и регулярно останавливайте ваш сервер, чтобы защитить данные игрока.

Default: false
Optimized: true


entity-activation-range - Эта группа настроек будет регулировать, насколько близко мобы и другие сущности должны быть, чтобы активировать свой ИИ. Эти числа обозначают расстояние в блоках, которое объекты могут пройти до того, как их деактивируют. Сущности будут повторно активированы, когда игрок подойдет к ним достаточно близко.

Optimized:
animals: 16
monsters: 24
raiders: 48
misc: 8

merge-radius - Увеличив радиус слияния, предметы и опыт будут собираться вместе чаще, уменьшая количество предметов на земле, тикающих. Если цифры слишком высоки, это может вызвать проблемы, когда предметы будут телепортироваться через блоки, а иногда и в опасные места (например, лаву).

Optimized:
item: 4.0
exp: 6.0


nerf-spawner-mobs - Для серверов, которые полагаются на спавнеров мобов, эта опция обеспечит хороший прирост производительности сервера, сделав мобов, порожденных спавнерами, не имеющими ИИ.

Default: false
Optimized: true

mob-spawn-range - Вы можете регулировать расстояние в кусках от игрока, который будет порождать мобов, что может помочь убедиться, что меньше мобов активны в области, куда игроки не могут добраться. Держите это число ниже расстояния просмотра, чтобы мобы действительно появлялись для игроков.

Default: 8
Optimized: 6

arrow-despawn-rate - Это заставит стрелы, выпущенные игроками в режиме выживания, удаляться быстрее (подсчитывается по количеству тиков), уменьшая количество тикающих сущностей. Рекомендуемые 300 тиков равны примерно 15 секундам.

Default: 1200
Options: 300

item-despawn-rate - Это приведет к тому, что предметы, упавшие на Землю, будут отчаиваться после определенного количества тиков.

Default: 6000
Options: 4000

Bukkit.yml

Давайте оптимизируем конфиг нашего ядра. А именно bukkit.yml. Я могу немножко ошибаться. Не бейте палками. Помните, что вы меняете настройки на свой срах и риск!

Описание я перевел через Яндекс.Переводчик. Если что-то непонятно, можете написать в комментарии.

spawn-limits - Вы можете настроить эти параметры, чтобы увеличить или уменьшить количество мобов, появляющихся в вашем мире на одного игрока. Взгляните на mob-spawn-range в spigot.yml (если он у вас есть), чтобы переместить мобов ближе к игроку, если вы уменьшите эти цифры здесь.

Optimized:
animals: 8
monsters: 50
water-animals: 3
water-ambient: 1
ambient: 1

chunk-gc - Уменьшив это число, ваш сервер будет быстрее выгружать пустые чанки.

Default: 600
Optimized: 400

autosave - Сохранение.

Default: 6000
Optimized: 12000

Paper.yml

Давайте оптимизируем конфиг нашего ядра. А именно paper.yml. Я могу немножко ошибаться. Не бейте палками. Помните, что вы меняете настройки на свой срах и риск!

Описание я перевел через Яндекс.Переводчик. Если что-то непонятно, можете написать в комментарии.

max-auto-save-chunks-per-tick - Уменьшив это значение, вы замедлите частоту сохранения фрагментов, пока ваш сервер спасает мир. Рекомендуется не опускаться ниже 8, иначе вы можете столкнуться с тем, что некоторые куски вообще не сохраняются.

Default: 24
Optimized: 8

optimize-explosions - Это менее важно по состоянию на версию 1.15, но все же может быть полезно для включения и использования эффективного метода бумаги для обработки взрывов, таких как тротил или криперы.

Default: false
Optimized: true

mob-spawner-tick-rate - Вы можете увеличить количество времени между тиками моба-спавнера без существенных изменений в игровом процессе, но не поднимайтесь намного выше, если только вы не испытываете большого отставания от спавнера.

Default: 1
Optimized: 2

disable-chest-cat-protections - Это полностью отключит сервер, постоянно проверяющий сундуки, чтобы увидеть, сидят ли на них кошки. По умолчанию, если кошки сидят на сундуке, игроки не могут открыть сундук.

Default: false
Optimized: true

container-update-tick-rate - Когда инвентарь или сундук открыт, Minecraft обновляет представление каждый тик по умолчанию, чтобы правильно отобразить изменения. Вы можете уменьшить частоту обновления инвентаря, но не поднимайтесь выше 3 или 4.

Default: 1
Optimized: 3

max-entity-collisions - Если ваши игроки часто встречаются зубрежкой мобов в небольших пространствах, уменьшение этого числа уменьшит отставание, вызванное зубрежкой.

Default: 8
Optimized: 2

grass-spread-tick-rate - Увеличив это значение, вы уменьшите частоту попыток сервера перекладывать траву из одного блока в другой.

Default: 1
Optimized: 4

despawn-range - Эти опции изменят расстояние от игроков, где мобы начнут отчаиваться. "жесткий "будет депонировать мобов мгновенно, в то время как" мягкий " начнет периодическую проверку и случайным образом отчаиваться от мобов через определенные промежутки времени.

soft: 28
hard: 96


hopper-disable-move-event - Это приведет к значительному повышению производительности, так как ваши бункеры не будут все отмечать каждый слот инвентаря, чтобы увидеть, какие предметы нужно переместить, что резко уменьшит задержку тика.

Default: false
Optimized: true

prevent-moving-into-unloaded-chunks - Если игрок каким-то образом попадает в незагруженный кусок, возможно, вызванный лагом в другом месте, это на самом деле увеличит ЛАГ еще больше. Включите эту функцию, чтобы игроки не могли вводить незагруженные фрагменты.

Default: false
Optimized: true

use-faster-eigencraft-redstone - Хотя существуют плагины, которые могут изменить способ управления алгоритмом redstone, эта опция, как было показано, значительно повышает производительность без изменения поведения vanilla redstone.

Default: false
Optimized: true

armor-stands-tick - Единственное, что доспехи стоят галочкой, - это проверить, не толкает ли их вода. Отключив это, вы можете освободить некоторые тиковые действия для других процессов и потерять только незначительную функцию геймплея.

Default: true
Optimized: false

per-player-mob-spawns - Вы можете настроить, как мобы появляются в мире, чтобы соответствовать механике ванили и предотвратить игроков с массивными фермами мобов от нарушения игрового процесса других.

Default: false
Optimized: true

CoreProtect
CoreProtect - это плагин регистрирующий изменения блоков. С его помощью вы можете просмотреть историю изменений блоков, то есть кто и когда поставил/удалил блок, и откатить/вернуть изменения блоков и другое.

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

Оптимизированный конфиг:

YAML:
#CoreProtect Config

# If enabled, extra data is displayed when doing rollbacks and restores.
# If disabled, you can manually trigger it in-game by adding "#verbose"
# to the end of your rollback statement.
verbose: true

# MySQL is optional and not required.
# If you prefer to use MySQL, enable the following and fill out the fields.
use-mysql: false
table-prefix: СВОИ ДАННЫЕ
mysql-host: СВОИ ДАННЫЕ
mysql-port: СВОИ ДАННЫЕ
mysql-database: СВОИ ДАННЫЕ
mysql-username: СВОИ ДАННЫЕ
mysql-password: СВОИ ДАННЫЕ

# If enabled, CoreProtect will check for updates when your server starts up.
# If an update is available, you'll be notified via your server console.
check-updates: true

# If enabled, other plugins will be able to utilize the CoreProtect API.
api-enabled: true

# If no radius is specified in a rollback or restore, this value will be
# used as the radius. Set to "0" to disable automatically adding a radius.
default-radius: 10

# The maximum radius that can be used in a command. Set to "0" to disable.
# To run a rollback or restore without a radius, you can use "r:#global".
max-radius: 100

# If enabled, items taken from containers (etc) will be included in rollbacks.
rollback-items: true

# If enabled, entities, such as killed animals, will be included in rollbacks.
rollback-entities: true

# If enabled, generic data, like zombies burning in daylight, won't be logged.
skip-generic-data: true

# Logs blocks placed by players.
block-place: true

# Logs blocks broken by players.
block-break: true

# Logs blocks that break off of other blocks; for example, a sign or torch
# falling off of a dirt block that a player breaks. This is required for
# beds/doors to properly rollback.
natural-break: true

# Properly track block movement, such as sand or gravel falling.
block-movement: true

# Properly track blocks moved by pistons.
pistons: true

# Logs blocks that burn up in a fire.
block-burn: true

# Logs when a block naturally ignites, such as from fire spreading.
block-ignite: true

# Logs explosions, such as TNT and Creepers.
explosions: true

# Track when an entity changes a block, such as an Enderman destroying blocks.
entity-change: true

# Logs killed entities, such as killed cows and enderman.
entity-kills: false

# Logs text on signs. If disabled, signs will be blank when rolled back.
sign-text: false

# Logs lava and water sources placed/removed by players who are using buckets.
buckets: true

# Logs natural tree leaf decay.
leaf-decay: true

# Logs tree growth. Trees are linked to the player who planted the sappling.
tree-growth: true

# Logs mushroom growth.
mushroom-growth: true

# Logs natural vine growth.
vine-growth: true

# Logs when portals such as Nether portals generate naturally.
portals: true

# Logs water flow. If water destroys other blocks, such as torches,
# this allows it to be properly rolled back.
water-flow: true

# Logs lava flow. If lava destroys other blocks, such as torches,
# this allows it to be properly rolled back.
lava-flow: true

# Allows liquid to be properly tracked and linked to players.
# For example, if a player places water which flows and destroys torches,
# it can all be properly restored by rolling back that single player.
liquid-tracking: true

# Track item transactions, such as when a player takes items from a
# chest, furnace, or dispenser. Necessary for any item based rollbacks.
item-transactions: true

# Track player interactions, such as when a player opens a door, presses
# a button, or opens a chest. Player interactions can't be rolled back.
player-interactions: true

# Logs messages that players send in the chat.
player-messages: false

# Logs all commands used by players.
player-commands: false

# Logs the logins and logouts of players.
player-sessions: false

# Logs when a player changes their Minecraft username.
username-changes: false

# Logs changes made via the plugin "WorldEdit" if it's in use on your server.
worldedit: true
# CoreProtect is donationware. Obtain a donation key from coreprotect.net/donate/
donation-key:

# Logs items dropped by players.
item-drops: true

# Logs items picked up by players.
item-pickups: true

# Track all hopper transactions, such as when a hopper removes items from a
# chest, furnace, or dispenser.
hopper-transactions: false

Также у этого плагина бывают проблемы с базой данной. Если что-то пойдет не так, то ваш ТПС упадет то 0.60. И ваш сервер просто зависнет. Такое было у меня...


Мобы

Сервер может оставать из за мобов. С помощью таймингов вы можете остледить именно какие мобы нагружают сервер. С помощью плагина MFM, вы можете регулировать спавн и число мобов. Спавн мобов лучше настроить в bukkit.yml, spigot.yml


ФИКСЫ

Один из игроков может сидеть с чит клиента. И посылать слишком много пакетов, что заставит сервер тормозит а в скоре и положить его. Также пользование предметов с 1000 лвл может тоже замедлять работу сервера. Есть фиксы на это. Ниже.

FiguresFix - фикс пакетов
ExploitFixer - фикс пакетов, предметов, блок запрещенных команд, uuidspoof и многое другое.
HamsterAPI - плагин для ExploitFixer
ItemFixer - фикс 1000 лвл
PacketLimiter - ограничение пакетов.
PacketsBookFix - фикс с багом в книжке.

Ссылки не предоставил, ищите сами. Google.com и Yandex.ru, может попозже залью.

Совет: На свой выбор. Некоторые плагины могут конфликтовать с друг другом. Не ставьте их всех подряд.



Java И Скрипт Запуска

Java:
java -Xms10G -Xmx10G -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -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 -jar paperclip.jar nogui

В эти параметры запуска вы должны вписать свои значения. Озу и названия ядра.

Tuning the JVM – G1GC Garbage Collector Flags for Minecraft

Литература

Оптимизация сервера
Server Optimization by Celebrimbor (spigotmc.org)
Optimizing Spigot - Remove lag, Fix tps & Improve performance!
Оптимизация bukkit.yml by shockbyte.com
Оптимизация spigot.yml by shockbyte.com
Оптимизация paper.yml by shockbyte.com
Темы по оптимизации от shockbyte.com
Оптимизация сервера Minecraft - habr.com
Как не нужно писать большие сервера - habr.com
Оптимизация серверов Minecraft на слабых системах - Помощь от OsterMine
Настройка/Советы/Оптимизация сервера - HungerCat
Оптимизация SPIGOT - убираем лаги, стабилизируем TPS и повышаем производительность!
Уменьшаем лаги на сервере, в клиенте и другое...

YouTube

Для просмотра этого контента нам потребуется ваше согласие на установку файлов cookie третьих лиц.
Более подробную информацию можно найти на нашей странице cookie.

Для просмотра этого контента нам потребуется ваше согласие на установку файлов cookie третьих лиц.
Более подробную информацию можно найти на нашей странице cookie.

Для просмотра этого контента нам потребуется ваше согласие на установку файлов cookie третьих лиц.
Более подробную информацию можно найти на нашей странице cookie.

Для просмотра этого контента нам потребуется ваше согласие на установку файлов cookie третьих лиц.
Более подробную информацию можно найти на нашей странице cookie.

Для просмотра этого контента нам потребуется ваше согласие на установку файлов cookie третьих лиц.
Более подробную информацию можно найти на нашей странице cookie.
Автор
Xezard
Просмотры
81 072
Первый выпуск
Обновление
Оценка
4.75 звёзд 4 оценок

Другие ресурсы пользователя Xezard

  • XGlow
    Для ядра XGlow
    Простое API на основе ProtocolLib для создания свечения на сущностях
  • XItemsRemover
    Для ядра XItemsRemover
    Простой плагин, который автоматически удаляет выпавшие предметы с отображением на них таймера.
  • XTextsCensor
    Платно Для ядра XTextsCensor
    Комплексное и тонко настраиваемое решение для фильтрации текстов на вашем сервере!

Поделиться ресурсом

Последние обновления

  1. Добавил пункт "ФИКСЫ"

    Прочитайте.

Последние рецензии

В целом статья неплоха но в разделе с ядрами лучше убрать ятопию или пометить как нестабильный форк, так как это сейчас по большей части свалка из патчей, и вместо неё поставить purpur. Насчёт фиксов: стоит убрать exploitfixer и его апи так как это не плагин, а кусок кала. А стоит оставить spigotguard так как он гораздо лучше но к сожалению стоит 15 долларов, но он их окупает. Так же figurefix, packetlimiter и packetsbookfix тоже стоит убрать так как даже exploitfixer их заменяет, что уж говорить про spigotguard. А ещё вместо itemfixer лучше использовать panilla так как itemfixer на версиях 1.13+ ведёт себя нестабильно. (На спиготе он платный но есть исходники на гитхабе)
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
▃▅▅▆▆▇▇ Да ▇▇▆▆▅▅▃
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
10 минут таймингов мало, нужно смотреть от 3 часов и более.
20 тпс из 20 тпс.
Гайд полезный новичкам самое то. Ну и уже знающие могут освежить память.
Назад
Сверху Снизу