Как увеличить регион майнкрафт


Как расширить свою территорию в Minecraft?

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

Для начала снимем приват с вашего старого региона. Для этого используйте команду /region remove «название региона». Потом введите команду /wand, чтобы получить деревянный топорик для привата территории. Теперь нажмите на один угол левой клавишей мыши, а на противоположный угол правой. Теперь укажите другие параметры. Команда //expand «количество блоков» позволяет увеличить территорию вверх, вниз или в любом другом направлении. После количества блоков укажите направление: north (север), south (юг), west (запад), east (восток), up (вверх), down (вниз). После этого остается только заприватить выбранную территорию командой /region claim «название региона».

Это все необходимые команды для расширения территории до необходимых размеров.

Формат файла региона - Официальная Minecraft Wiki

Для улучшения качества этой статьи может потребоваться очистка, возможно, в соответствии с руководством по стилю. [обсудить ] Пожалуйста, помогите Minecraft Wiki очистить эту страницу, если можете. Страница для обсуждений может содержать предложения.

Формат файла региона - это формат хранения для фрагментов Minecraft , представленных в бета-версии 1.3, в которых группы фрагментов 32 × 32 (блоки 512 × 256 × 512, всего 67 108 864) хранятся в файле региона. ,Этот формат файла заменил формат уровня Alpha, который использовался с этапа разработки Infdev, в котором фрагменты хранились в отдельных файлах. Можно сказать, что область - это часть файловой системы, где заголовок показывает позиции проигрывателя для каждого файла, а сектор - это размер выделения.

Система основана на McRegion, [1] , моде Scaevolus, также известного своими разработками проекта Optimine. Формат McRegion был принят практически без изменений, за исключением добавления таблицы временных меток обновления фрагментов.JahKob утверждает, что этот формат до 7 раз быстрее, чем предыдущая система. [2] Разница в общем размере файла в мире между форматом файла региона и форматом уровня альфа незначительна.

Формат был заменен форматом файла Anvil; однако формат файла Anvil внес изменения только в формат Chunk и изменил только расширение файла региона с «.mcr» на «.mca».

,

с использованием средства исправления регионов Minecraft | Втулка MC

  • Домой
    • Последние сообщения
    • Недавняя активность
  • Форумы
    • Поиск по форуму
    • Недавние сообщения
  • Ресурсы
    • Поисковые ресурсы
    • Большинство ресурсов
    • Последние обзоры
  • Wiki
    • Вики-указатель
    • Список страниц
    • Недавняя активность
  • команда
    • Администратор
    • Модератор
    • Спонсор
    • Разработчик
    • Вики-команда
    • Услуги Персонал
    • Младший мод
    • Ресурсный персонал
    • Персонал IRC
  • Загрузки
    • Spigot / BuildTools
    • BungeeCord
    • Дженкинс
  • диссонанс
  • хаб
  • вопросы
  • Чат
  • члены
    • Известные члены
    • Текущие посетители
    • Недавняя активность
    • Новые сообщения профиля
  • жертвовать
Ваше имя или адрес электронной почты:
Пароль:
.Настройка

JVM: оптимизирован G1GC для Minecraft

Настройка JVM - флаги сборщика мусора G1GC для Minecraft

2 июля 2018 г. в Java, Minecraft, Системное администрирование

Введение

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

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

Я настоятельно рекомендую использовать эти флаги для запуска вашего сервера. Эти флаги помогают поддерживать работу вашего сервера в СООТВЕТСТВИИ без больших всплесков сбора мусора. ЦП может быть немного выше, но ваш сервер будет в целом более надежным и стабильным TPS.

Если эти флаги помогают вашему серверу, подумайте о пожертвовании!

Используемые флаги запуска JVM - MC 1.15 (Java 8+, MC 1.8+) Обновление

Используйте эти флаги точно, изменяя только Xmx и Xms. Эти флаги работают и масштабируются в соответствии с любым размером памяти, даже с 500 МБ, но 1.15 не будет работать с таким низким объемом памяти ...)

java -Xms10G -Xmx10G -XX: + UseG1GC -XX: + ParallelRefProcEnabled -XX: MaxGCPauseMillis = 200 -XX: + UnlockExperimentalVMOptions -XX: + DisableExplicitGC -XX: + AlwaysPreTouch -XSize: GX: + AlwaysPreTouch -XSize: GX: G1 XX: G1HeapRegionSize = 8M -XX: G1ReservePercent = 20 -XX: G1HeapWastePercent = 5 -XX: G1MixedGCCountTarget = 4 -XX: InitiatingHeapOccupancyPercent = 15 -XX: G1MixedGCLivePercent: 90 -PXX: G1MixedGCLiveThreshold: + PerfDisableSharedMem -XX: MaxTenuringThreshold = 1 -Dusing.aikars.flags = https: //mcflags.emc.gs -Daikars.new.flags = true -jar paperclip.jar nogui

ПОСЛЕДНЕЕ ОБНОВЛЕНИЕ: 25 апр 2020 15:30 EST

Эти флаги рекомендуются для ВСЕХ версий Майнкрафт! От 1.8 до 1.15+, используйте этот набор.

ВАЖНО - ПРОЧИТАЙТЕ - не используйте ВСЮ память !! ПОЛЬЗОВАТЕЛИ ПТЕРОДАКТИЛЯ!

При установке значений Xms и Xmx, если ваш хост сообщает, что у вас 8000M памяти, НЕ ИСПОЛЬЗУЙТЕ 8000M! Minecraft (и Java) требует дополнительной памяти помимо этого параметра Xmx.Рекомендуется уменьшить Xmx / Xms примерно на 1000-1500M , чтобы избежать нехватки памяти или «OOMKiller», поражающего ваш сервер. Это также оставляет место для операционной системы, которая тоже может использовать память.

Есть 8000M памяти? В целях безопасности используйте 6500M. Но вы также можете спросить своего хоста, покроют ли они эти накладные расходы за вас и вместо этого предоставят вам 9500M. Некоторые хозяева будут! Просто спроси.

Рекомендуемое серверное программное обеспечение

Если вы еще не используете Paper, чрезвычайно улучшенную версию Spigot, вам действительно нужно переключиться! Paper - это гораздо более быстрая версия Spigot с огромным улучшением производительности.Он также поставляется с исправлениями ошибок и эксплойтов, множеством новых функций и множеством новых API, которые разработчики могут использовать для улучшения работы с плагинами.

Paper - это капля на замену Spigot, с которой каждый плагин Bukkit / Spigot должен работать одинаково. Минусов у перехода на

нет

Paper - единственный способ запустить сервер 1.15 с приличной производительностью!


Рекомендуемая память

Рекомендую использовать минимум 6-10Гб, Неважно сколько плееров! Если вы не можете позволить себе 10 ГБ памяти, дайте как можно больше, но убедитесь, что вы оставили и операционной системе немного памяти.G1GC работает лучше с большим объемом памяти.

Если вы используете 12 ГБ или меньше памяти для MC, вам не следует изменять эти параметры.

Если вы используете значение Xmx больше 12G

Если у вас есть и используется более 12 ГБ памяти, настройте следующее:

  • -XX: G1NewSizePercent = 40
  • -XX: G1MaxNewSizePercent = 50
  • -XX: G1HeapRegionSize = 16M
  • -XX: G1ReservePercent = 15
  • -XX: InitiatingHeapOccupancyPercent = 20

ВНИМАНИЕ: Если после этого вы видите увеличение коллекций старого поколения, вернитесь к базовым флагам!

Объяснение данных изменений:

  • Базовый набор флагов рассчитан на 30/40, чтобы снизить риск космических проблем.Чем больше памяти, тем меньше проблем. Мы можем дать больше новому поколению с 40/50, а также снизить процент резерва, поскольку резерв по умолчанию уже будет больше.
  • Увеличение размера области помогает уменьшить огромные выделения и ускоряет перемаркировку. Нам нужен меньший размер области при меньших кучах, чтобы обеспечить достаточное количество доступных областей
  • Мы можем начать поиск памяти старого поколения для восстановления с большей задержкой с IHOP на уровне 20, поскольку у нас есть больше памяти старого поколения, доступное для пространства на ЦП.

Журнал Java GC

У вас проблемы старого поколения с этими флагами? Помогите мне помочь вам! Добавьте следующие флаги в зависимости от вашей версии Java, чтобы включить ведение журнала GC:

Java 8-10:

-Xloggc: gc.log -verbose: gc -XX: + PrintGCDetails -XX: + PrintGCDateStamps -XX: + PrintGCTimeStamps -XX: + UseGCLogFileRotation -XX: NumberOfGCLogFiles = 5 -XX: GCLogFileSize = 1M 9M

Java 11+:

-Xlog: gc *: журналы / gc.журнал: время, время безотказной работы: количество файлов = 5, размер файла = 1M

Как только вы начнете видеть коллекции старого поколения в Timings, возьмите файл logs / gc.log (в том же месте, что и ваш latest.log) и отправьте его мне в Paper Discord для анализа.

Журнал

GC не влияет на производительность и может быть оставлен включенным в любое время. Файлы не будут занимать много места (5МБ)

Технические пояснения к флагам:

  1. -Xms сопоставление -Xmx - Why: Никогда не запускайте сервер в случае, если -Xmx может запустить систему полностью из памяти.Ожидается, что ваш сервер всегда будет использовать весь -Xmx!
    Затем вы должны убедиться, что в ОС есть дополнительная память поверх этого Xmx для вещей, не связанных с MC / OS. Следовательно, вам никогда не следует запускать MC с настройками -Xmx, которые вы не можете поддерживать, если java использует все это. Теперь это означает, что если -Xms ниже, чем -Xmx -YOUE UNUSED MEMORY! Неиспользуемая память - это потраченная впустую память. G1 (и, возможно, даже CMS до определенного порога, но я лишь констатирую то, в чем уверен) работает лучше с большим объемом памяти.G1 адаптивно выбирает объем памяти для каждой области, чтобы оптимизировать время паузы. Если у вас больше памяти, чем необходимо для достижения оптимального времени паузы, G1 просто протолкнет эту дополнительную память в старое поколение, и это не повредит вам (это может быть не в случае CMS, но в случае G1). фундаментальная идея улучшения поведения сборки мусора - гарантировать, что недолговечные объекты умирают молодыми и никогда не продвигаются по службе. Чем больше памяти у G1, тем лучше вы получите уверенность в том, что объекты не будут преждевременно переведены в старое поколение.G1 работает иначе, чем предыдущие коллекторы, и может более эффективно обрабатывать большие кучи.

    Если ему не нужна предоставленная ему память, он не будет ее использовать. Весь двигатель работает по-другому и не страдает от слишком большого количества куч, и это общепринятая информация о том, что в рамках G1 необходимо сохранять Xms и Xmx одинаковыми!

  2. UnlockExperimentalVMOptions - требуется для некоторых из перечисленных ниже опций
  3. G1NewSizePercent: Это важные.В CMS и других поколениях настройка New Generation приводит к FIXED SIZE New Gen и обычно выполняется с помощью явной установки размера с помощью -Xmn. С G1 дела обстоят лучше! Теперь вы можете указать проценты от общего желаемого диапазона для нового поколения. С этими настройками мы говорим G1 не использовать 5% по умолчанию для нового поколения, а вместо этого даем 40%! Minecraft имеет чрезвычайно высокую скорость выделения памяти, составляющую не менее 800 мегабайт в секунду на сервере на 30 игроков! И это в основном недолговечные объекты (Block Position)

    Теперь это означает, что MC ДЕЙСТВИТЕЛЬНО нужно уделять больше внимания новому поколению, чтобы иметь возможность даже поддерживать эту скорость распределения.Если ваше новое поколение слишком маленькое, вы будете запускать новые коллекции поколений 1-2+ раза в секунду, что действительно плохо. У вас будет так много пауз, что TPS может пострадать, и сервер не сможет сохранить Затем объедините тот факт, что объекты теперь будут продвигаться быстрее, в результате чего ваше старое поколение будет расти быстрее. Имея больше NewGen, мы можем замедлить интервалы коллекций Young Gen, в результате чего у короткоживущих объектов будет больше времени, чтобы умереть молодыми, и в целом более эффективное поведение GC.

  4. G1MixedGCLiveThresholdPercent : определяет, когда включать регионы из смешанных GC в коллекцию Young GC, сохраняя чистоту старого поколения без выполнения обычной коллекции GC старого поколения. Когда ваша память меньше этого процента, старое поколение даже не будет включено в «смешанные» коллекции. Смешанные не такие тяжелые, как полная старая коллекция, поэтому небольшая инкрементная очистка старой позволяет снизить потребление памяти.
    По умолчанию - от 65 до 85 в зависимости от версии Java. Мы устанавливаем значение 90, чтобы как можно быстрее удалить мусор в старом поколении, чтобы сохранить как можно больше свободных областей.У моего старого флага было 35, что было ошибкой. Я перевернул намерение этого флага, так как думал, что 35 - это то, что делает 65. Вы не должны использовать 35 для этого числа.
  5. G1ReservePercent = 20: MC Скорость выделения памяти в последних версиях действительно безумна. Мы рискуем столкнуться с ужасным «исчерпанием пространства» из-за нехватки свободной памяти для перемещения данных. Это гарантирует, что для этой операции будет использоваться больше памяти. По умолчанию 10, поэтому мы даем ему еще 10.
  6. MaxTenuringThreshold = 1 : Minecraft имеет действительно высокую скорость выделения памяти.Большая часть этих воспоминаний возвращается в поколение eden. Однако временные данные будут перетекать в оставшуюся в живых. Первоначально играл с полным удалением Survivor и имел приличные результаты, но действительно приводит к тому, что временные данные переходят в старые, что не очень хорошо. Max Tenuring 1 гарантирует, что мы не переносим временные данные в старое поколение, но все, что переживает 2 прохода мусора Коллекция просто будет считаться долговечной.
    Это значительно сокращает время пауз в Young Collections, поскольку копирование данных до 15 раз в пространство Survivor для сохраненного объекта действительно занимает много времени для фактически старой памяти.В идеале механизм GC будет отслеживать средний возраст объектов и быстрее хранить данные, но это не так, как это работает.
    Учитывая, что средняя скорость сборки мусора составляет от 10 секунд до нескольких минут на одну молодую сборку, это не приводит к продвижению какого-либо «мусора» и просто задерживает сбор более долговечной памяти в смешанных сборщиках мусора.
  7. SurvivorRatio = 32: Поскольку мы резко уменьшили MaxTenuringThreshold, мы резко сократим использование пространства выжившего. Это освобождает больше регионов для использования Эдемом.
  8. AlwaysPreTouch : AlwaysPreTouch получает настройки памяти и резервирует их при запуске процесса, обеспечивая непрерывность памяти, что еще больше повышает ее эффективность. Это увеличивает скорость доступа к памяти операционной системы. Обязательно для использования прозрачных огромных страниц
  9. + DisableExplicitGC: Многие плагины думают, что знают, как управлять памятью, и пытаются вызвать сборку мусора. Плагины, которые делают это, запускают полную сборку мусора, вызывая значительный всплеск задержки. Этот флаг запрещает плагинам пытаться это сделать, защищая вас от их плохого кода.
  10. MaxGCPauseMillis = 200: Этот параметр определяет, сколько памяти используется между минимальным и максимальным диапазонами, указанными для вашего нового поколения. Это «цель» того, как долго вы хотите, чтобы ваш сервер останавливался для сбора данных. 200 стремится к потере максимум 4 тика. Это приведет к кратковременному падению TPS, однако сервер может мгновенно компенсировать это падение, а это означает, что это не окажет значимого влияния на ваш TPS. 200 мс меньше, чем могут распознать игроки. При тестировании ограничение этого значения еще меньшим числом приводит к тому, что G1 недостаточно быстро восстанавливает память и потенциально исчерпывает старый генератор, запускающий полный сбор.Тот факт, что это число равно 200, не означает, что каждая коллекция будет 200. Это означает, что она может использовать до 200, если она действительно нужна, и нам нужно позволить ей выполнять свою работу, когда есть память для сбора.
  11. + ParallelRefProcEnabled : оптимизирует процесс GC для использования нескольких потоков для проверки слабых ссылок. Не знаю, почему это не по умолчанию….
  12. G1RSetUpdatingPauseTimePercent = 5: По умолчанию это 10% времени, затрачиваемого во время паузы обновления Rset, уменьшите это значение до 5%, чтобы сделать больше времени одновременным, чтобы уменьшить продолжительность паузы.
  13. G1MixedGCCountTarget = 4: По умолчанию - 8. Поскольку мы стремимся собирать медленнее, с меньшим использованием старого поколения, попытайтесь быстрее освободить память старого поколения, чтобы избежать исчерпания старого.
  14. G1HeapRegionSize = 8M +: значение по умолчанию рассчитывается автоматически. СУПЕР важно для Minecraft, особенно для версии 1.15, так как в ситуациях с нехваткой памяти расчет по умолчанию в большинстве случаев будет слишком низким. Любое выделение памяти, равное половине этого размера (4 МБ), будет рассматриваться как «Огромное» и продвигаться сразу к старому поколению, и его труднее освободить.Если вы разрешите java использовать значение по умолчанию, вы будете уничтожены, и значительная часть вашей памяти будет обработана как Humongous.
  15. + PerfDisableSharedMem: Заставляет сборщик мусора записывать в файловую систему, что может вызвать большую задержку при высоком уровне ввода-вывода на диске - см. Https://www.evanjones.ca/jvm-mmap-pause.html

Использование больших страниц

Также для больших страниц - еще важнее использовать -Xms = -Xmx! Для больших страниц должна быть указана вся память, иначе вы можете остаться без выигрыша.Эта память в любом случае не будет использоваться ОС, поэтому используйте ее.
Дополнительно используйте эти флаги (Metaspace только для Java 8, не используйте его для Java7):

Код:

-XX: + UseLargePagesInMetaspace

Прозрачные огромные страницы

Спорная функция, но может быть использована, если вы не можете настроить свой хост для реальной HugeTLBFS. попробуйте добавить -XX: + UseTransparentHugePages, но очень важно, чтобы у вас также был установлен AlwaysPreTouch. В противном случае THP, скорее всего, причинит вам вред. Я не измерял, как THP работает для MC или как это влияет на AlwaysPreTouch, поэтому этот раздел предназначен для опытных пользователей, которые хотят поэкспериментировать.

Кредиты:

Спасибо https://product.hubspot.com/blog/g1gc-fundamentals-lessons-from-taming-garbage-collection за помощь в улучшении моего понимания флагов и внесение улучшений!


История изменений

  • 02.05.2020: добавлено + PerfDisableSharedMem, скорректировано значение MixedGCTarget до 4
  • 25.04.2020: удален OmitStackTraces, так как это могло вызвать проблемы с производительностью некоторых плагинов (но не всех).
  • 05.04.2020 : Массовый рефакторинг предложений флагов.Новый подход к оптимизации времени паузы. Флаги все еще могут меняться. Эти изменения являются обязательными для MC 1.15
  • 4.10.2018 : удалены AggressiveOpts и InitiatingHeapOccupancyPercent. Aggressive удален в Java 11, а IHOP может снизить производительность в Java 11. Вы должны удалить их и для Java 8.
  • 18.08.2018 : значение MixedGCLiveThreshold изменено на 35 (с 50), чтобы обеспечить более ранний запуск смешанного GC.
    Добавлены примечания о рекомендуемом использовании 10 ГБ памяти.
    Добавлена ​​дополнительная флаговая документация
  • 24.05.2018 : Добавлено -XX: + ParallelRefProcEnabled

Теги: сборщик, g1gc, мусор, java, jvm, minecraft, флаги запуска, настройка

,

Смотрите также