Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

Туториал Оптимизация сервера MC

  • Автор темы Автор темы Flait
  • Дата начала Дата начала

Flait

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

Как посмотреть мой тпс? -
Чтобы посмотреть тпс введите команду /gc (добавляет плагин Essentials), /tps, /tpsbar.
Чтобы посмотреть полный список загруженности советую плагин
Spark -> https://www.spigotmc.org/resources/spark.57242/

Какой тпс неиграбелен? -
Показатели тпс
  • 20-18 тпс - Отличный показатель, игроки лагов точно не заметят
  • 18-15 тпс - Играбельно, но уже заметны лаги
  • 14-8 тпс - Неиграбельно, срочно исправляйте это


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

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

Какой пинг неиграбелен?
Показатели пинга
  • 1-100 пинг - Супер, у вас отличный пинг
  • 90-150 пинг - Вполне играбельно, возможны провисания в пвп
  • 200-300 пинг - Неиграбельный пинг, срочно исправляйте это


Выбираем ядро​
Если у вас нет опыта в создании своего проекта или вы недостаточно опытны вам не нужны форки Paper, в них куча всего и новичок спокойно может запутаться, поэтому для новичков советую Paper (бумага).
Если у вас есть небольшой опыт в создании серверов используйте форк бумаги Purpur.
Если на вашем сервере играет больше 60 человек советую сразу задуматся об мультипоточном ядре могу предложить вам ядро SSSpigot (не беслпатное), не пугайтесь за сумму в 1300 рублей, это не много, если хотите качественный проект вкладывайте в него свои денюжки.

Ссылки на ядра ->
  1. Paper - https://papermc.io/downloads
  2. Purpur - https://purpurmc.org/downloads/1.17.1
  3. SSSpigot - https://www.mc-market.org/resources/14122/

Оптимизируемые плагины​
Chunky - Позволяет прогрузить мир
S
tackMob - В 1 мобе может находится 5 и больше мобов

Что не нужно использовать​
1 - Никогда не скачивайте что либо с сайтов по типу майнсборки и блекмайнкрафта, даже если там есть слитый плагин и он вам очень нужен ни в коем случае даже не смейте заходить туда. Поверьте легче заплатить за тот-же Vehicles или CMI пару рублей, но иметь чистую сборку без бэкдоров и т.п хаков.
2 - Никогда не скачивайте уже готовые сборки. Приведу пример для наглядности 1 раз я открыл сервер со скачанной сборкой и мне написал игрок, что он нашел баг или дюп, а я часа 3 думал, а какой плагин за это отвечает, легче создать свою сборку где вы знаете где что находится, а не сидеть потом с мыслями а где это найти, а как это фиксится.
3 - Не используйте на новых версиях майнкрафта плагины на очистку дропа по типу ClearLagg, всё это уже давно умеет ядро, по поводу того как настроить быстрое удаление дропа смотрите ниже.


Как понять что нагружает мой сервер?​
Для того чтобы быстро понять что нагружает ваш сервер используйте всего 3 команды в игре
  1. /timings on - и подождать минут 30
  2. /timings report - перейти по ссылке
  3. /timings off
Если вам так и не понятно что же нагружает ваш сервер создайте тему на форуме и дайте ссылку на тайминги

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

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

Оптимизированные значения
  1. animals: 8
  2. monsters: 50
  3. water-animals: 3
  4. water-ambient: 1
  5. ambient: 1
chunk-gc - Уменьшив это число, ваш сервер будет быстрее выгружать пустые чанки.

Оптимизированное значение - 400

autosave - Авто-сохранение.

Оптимизированное значение: 16000, если сервер каждые 5 минут падает от ваших рук ставьте 12000

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

Оптимизированное значение: true


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

Оптимизированные значения:
  1. animals: 16
  2. monsters: 24
  3. raiders: 48
  4. misc: 8

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

Оптимизированные значения:
  1. item: 4.0
  2. exp: 6.0


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

Оптимизированное значение: true

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

Оптимизированное значение: 6

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

Оптимизированное значение: 300

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

Оптимизированное значение: 4000

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

Оптимизированное значение: 8

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

Оптимизированное значение: true

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

Оптимизированное значение: 2

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

Оптимизированное значение: true

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

Оптимизированное значение: 3

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

Оптимизированное значение: 4

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

Оптимизированные значения:
  1. soft: 28
  2. hard: 96


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

Оптимизированное значение: true

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

Default: false
Optimized: true

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

Оптимизированное значение: true

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

Оптимизированное значение: false

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

Оптимизированное значение: true

Оптимизированное удаление дропа​
Найдите в файле paper.yml строку alt-item-despawn-rate: и вставляйте текст только в неё!
Код:
    alt-item-despawn-rate:
      enabled: true
      items:
        COBBLESTONE: 300
        NETHERRACK: 300
        SAND: 300
        RED_SAND: 300
        GRAVEL: 300
        DIRT: 300
        GRASS: 300
        SANDSTONE: 300
        RED_SANDSTONE: 300
        PUMPKIN: 300
        MELON_SLICE: 300
        KELP: 300
        BAMBOO: 300
        SUGAR_CANE: 300
        TWISTING_VINES: 300
        WEEPING_VINES: 300
        OAK_LEAVES: 300
        SPRUCE_LEAVES: 300
        BIRCH_LEAVES: 300
        JUNGLE_LEAVES: 300
        ACACIA_LEAVES: 300
        DARK_OAK_LEAVES: 300
        CACTUS: 300
        END_STONE: 300
        DIORITE: 300
        GRANITE: 300
        ANDESITE: 300
        SCAFFOLDING: 400
Строка запуска​
Используйте флаги айкара
Код:
Смотрите ниже в ответах
Подстройте под свои значения озу и своё название ядра.
Завершение​
На этом всё, я рассказал всё что знал и сам проверял, предоставляйте свои предложения в комментарии!
 
Последнее редактирование:
Здравствуйте
Наверное каждый новичок себе задавал вопрос "А как же оптимизировать моё творение?"
Статья написана на версию майнкрафта 1.17.1
В этом гайде вы найдёте ответы на такие вопросы
  • Как оптимизировать мой сервер?
  • Почему низкий тпс?
Введение в тему
Что такое тпс? -
TPS (Ticks per Second)
— это число тактов за секунду. Чем более высокий данный показатель, тем большая производительность сервера. В норме показатель 20.0. TPS может существенно снижаться в случае значительной нагрузки на сервер. И в консоль выводятся такие строчки: [Server thread/WARN]: Can't keep up! Is the server overloaded? Running 9999ms or 9999 ticks behind

Как посмотреть мой тпс? -
Чтобы посмотреть тпс введите команду /gc (добавляет плагин Essentials), /tps, /tpsbar.
Чтобы посмотреть полный список загруженности советую плагин
Spark -> https://www.spigotmc.org/resources/spark.57242/

Какой тпс неиграбелен? -
Показатели тпс
  • 20-18 тпс - Отличный показатель, игроки лагов точно не заметят
  • 18-15 тпс - Играбельно, но уже заметны лаги
  • 14-8 тпс - Неиграбельно, срочно исправляйте это
Что такое пинг? -
Ping
- отражает, сколько времени (в миллисекундах) требуется данным для обработки и перемещения между клиентом и сервером. Чем дальше клиент отдален от сервера, тем больше времени может занять этот перенос. Другими распространенными факторами, влияющими на пинг, являются перегруженные или медленные соединения.

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

Какой пинг неиграбелен?
Показатели пинга
  • 1-100 пинг - Супер, у вас отличный пинг
  • 90-150 пинг - Вполне играбельно, возможны провисания в пвп
  • 200-300 пинг - Неиграбельный пинг, срочно исправляйте это
Выбираем ядро
Если у вас нет опыта в создании своего проекта или вы недостаточно опытны вам не нужны форки Paper, в них куча всего и новичок спокойно может запутаться, поэтому для новичков советую Paper (бумага).
Если у вас есть небольшой опыт в создании серверов используйте форк бумаги Purpur.
Если на вашем сервере играет больше 60 человек советую сразу задуматся об мультипоточном ядре могу предложить вам ядро SSSpigot (не беслпатное), не пугайтесь за сумму в 1300 рублей, это не много, если хотите качественный проект вкладывайте в него свои денюжки.

Ссылки на ядра ->
  1. Paper - https://papermc.io/downloads
  2. Purpur - https://purpurmc.org/downloads/1.17.1
  3. SSSpigot - https://www.mc-market.org/resources/14122/
Оптимизируемые плагины
Chunky - Позволяет прогрузить мир
S
tackMob - В 1 мобе может находится 5 и больше мобов

Что не нужно использовать
1 - Никогда не скачивайте что либо с сайтов по типу майнсборки и блекмайнкрафта, даже если там есть слитый плагин и он вам очень нужен ни в коем случае даже не смейте заходить туда. Поверьте легче заплатить за тот-же Vehicles или CMI пару рублей, но иметь чистую сборку без бэкдоров и т.п хаков.
2 - Никогда не скачивайте уже готовые сборки. Приведу пример для наглядности 1 раз я открыл сервер со скачанной сборкой и мне написал игрок, что он нашел баг или дюп, а я часа 3 думал, а какой плагин за это отвечает, легче создать свою сборку где вы знаете где что находится, а не сидеть потом с мыслями а где это найти, а как это фиксится.
Как понять что нагружает мой сервер?
Для того чтобы быстро понять что нагружает ваш сервер используйте всего 3 команды в игре
  1. /timings on - и подождать минут 30
  2. /timings report - перейти по ссылке
  3. /timings off
Если вам так и не понятно что же нагружает ваш сервер создайте тему на форуме и дайте ссылку на тайминги
Оптимизируем сервер
Bukkit.yml
Не забывайте что все мы можем ошибаться и я в том числе, ещё прошу не кидаться палками, а лучше распишите, что вам не нравится и я обязательно исправлю это. Помните что настройки вы меняете на свой страх и риск!

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

Оптимизированные значения
  1. animals: 8
  2. monsters: 50
  3. water-animals: 3
  4. water-ambient: 1
  5. ambient: 1
chunk-gc - Уменьшив это число, ваш сервер будет быстрее выгружать пустые чанки.

Оптимизированное значение - 400

autosave - Авто-сохранение.

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

Оптимизированное значение: true


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

Оптимизированные значения:
  1. animals: 16
  2. monsters: 24
  3. raiders: 48
  4. misc: 8

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

Оптимизированные значения:
  1. item: 4.0
  2. exp: 6.0


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

Оптимизированное значение: true

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

Оптимизированное значение: 6

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

Оптимизированное значение: 300

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

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

Оптимизированное значение: 8

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

Оптимизированное значение: true

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

Оптимизированное значение: 2

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

Оптимизированное значение: true

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

Оптимизированное значение: 3

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

Оптимизированное значение: 4

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

Оптимизированные значения:
  1. soft: 28
  2. hard: 96


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

Оптимизированное значение: true

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

Default: false
Optimized: true

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

Оптимизированное значение: true

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

Оптимизированное значение: false

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

Оптимизированное значение: true
Строка запуска
Используйте флаги айкара
Подстройте под свои значения озу и своё название ядра.
Завершение
На этом всё, я рассказал всё что знал и сам проверял, предоставляйте свои предложения в комментарии!
Зачем скопировал статьи спигота?

Насчет скрипта запуска - обнови инфу, добавив 2 флага. Они на оптимайз не влияют, но они обязаны быть вы сами знаете зачем
-Dlog4j2.formatMsgNoLookups=true
-Dcom.sun.jndi.ldap.object.trustURLCodebase=false
 
Последнее редактирование:
Зачем скопировал стати спигота?

Насчет скрипта запуска - обнови инфу, добавив 2 флага. Они на оптимайз не влияют, но они обязаны быть вы сами знаете зачем
-Dlog4j2.formatMsgNoLookups=true
-Dcom.sun.jndi.ldap.object.trustURLCodebase=false
Я скопировал и добавил своё, на спиготе он перевёл англоязычную версию с яндекс переводчика, как думаешь там всё понятно?
 
Я скопировал и добавил своё, на спиготе он перевёл англоязычную версию с яндекс переводчика, как думаешь там всё понятно?
Ну по идее нормально, но инфы к примеру про плагин spark не хватает, многие говорят что он куда более четко показывает инфу чем тайминги
 
Ну по идее нормально, но инфы к примеру про плагин spark не хватает, многие говорят что он куда более четко показывает инфу чем тайминги
Да я знаю, делал тему в спешке, будет обновляться понятное дело
 
Да я знаю, делал тему в спешке, будет обновляться понятное дело
Также помимо флагов описанных выше можно вписать еще 1
-XX:+OptimizeStringConcat
Не знаю почему айкар его не указал, он есть в куче гайдов и на сайте oracle как полезный
 
Стоит также добавить инфу про queue-light-updates, никто её нигде не указывает, но она улучшает поведение света, уменьшая лаги от него. На легаси версиях помогает немного, думаю на новых не лишним будет тоже юзать
 
Стоит также добавить инфу про queue-light-updates, никто её нигде не указывает, но она улучшает поведение света, уменьшая лаги от него. На легаси версиях помогает немного, думаю на новых не лишним будет тоже юзать
Обязательно добавлю, добавил быстрое удаление дропа через ядро в тему
 
Разве это актуально уже? Везде все починили, где эти строки должны работать?
Я советую просто юзать, не смотря на обновление библиотек. 2.15 обошли, 2.16 обошли ну его нафиг, пусть будет. Впихнул да забыл
 
Минутка занимательных фактов с гитхата.
Идеальная строка запуска на 1.17 выглядит так:

java -server -Xms8G -Xmx8G -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+UnlockDiagnosticVMOptions -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 -XX:-UseBiasedLocking -XX:+EnableJVMCIProduct -XX:+EnableJVMCI -XX:+UseJVMCICompiler -XX:+EagerJVMCI -XX:UseAVX=2 -XX:+UseStringDeduplication -XX:+UseFastUnorderedTimeStamps -XX:+UseAES -XX:+UseAESIntrinsics -XX:UseSSE=4 -XX:AllocatePrefetchStyle=1 -XX:+UseLoopPredicate -XX:+RangeCheckElimination -XX:+EliminateLocks -XX:+DoEscapeAnalysis -XX:+UseCodeCacheFlushing -XX:+UseFastJNIAccessors -XX:+OptimizeStringConcat -XX:+UseCompressedOops -XX:+UseThreadPriorities -XX:+OmitStackTraceInFastThrow -XX:+TrustFinalNonStaticFields -XX:ThreadPriorityPolicy=1 -XX:+UseInlineCaches -XX:+RewriteBytecodes -XX:+RewriteFrequentPairs -XX:+UseNUMA -XX:-DontCompileHugeMethods -XX:+UseCMoveUnconditionally -XX:+UseFPUForSpilling -XX:+UseNewLongLShift -XX:+UseVectorCmov -XX:+UseXMMForArrayCopy -XX:+UseXmmI2D -XX:+UseXmmI2F -XX:+UseXmmLoadAndClearUpper -XX:+UseXmmRegToRegMoveAll -Dfile.encoding=UTF-8 -Djdk.nio.maxCachedBufferSize=262144 -Dgraal.TuneInlinerExploration=1 -Dgraal.CompilerConfiguration=enterprise -Dgraal.UsePriorityInlining=true -Dgraal.Vectorization=true -Dgraal.OptDuplication=true -Dgraal.DetectInvertedLoopsAsCounted=true -Dgraal.LoopInversion=true -Dgraal.VectorizeHashes=true -Dgraal.EnterprisePartialUnroll=true -Dgraal.VectorizeSIMD=true -Dgraal.StripMineNonCountedLoops=true -Dgraal.SpeculativeGuardMovement=true -Dgraal.InfeasiblePathCorrelation=true -Dlog4j2.formatMsgNoLookups=true -Dcom.sun.jndi.ldap.object.trustURLCodebase=false —add-modules jdk.incubator.vector -jar server.jar nogui

Спёрто отсюда https://github.com/etil2jz/etil-minecraft-flags
 
Минутка занимательных фактов с гитхата.
Идеальная строка запуска на 1.17 выглядит так:

java -server -Xms8G -Xmx8G -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+UnlockDiagnosticVMOptions -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 -XX:-UseBiasedLocking -XX:+EnableJVMCIProduct -XX:+EnableJVMCI -XX:+UseJVMCICompiler -XX:+EagerJVMCI -XX:UseAVX=2 -XX:+UseStringDeduplication -XX:+UseFastUnorderedTimeStamps -XX:+UseAES -XX:+UseAESIntrinsics -XX:UseSSE=4 -XX:AllocatePrefetchStyle=1 -XX:+UseLoopPredicate -XX:+RangeCheckElimination -XX:+EliminateLocks -XX:+DoEscapeAnalysis -XX:+UseCodeCacheFlushing -XX:+UseFastJNIAccessors -XX:+OptimizeStringConcat -XX:+UseCompressedOops -XX:+UseThreadPriorities -XX:+OmitStackTraceInFastThrow -XX:+TrustFinalNonStaticFields -XX:ThreadPriorityPolicy=1 -XX:+UseInlineCaches -XX:+RewriteBytecodes -XX:+RewriteFrequentPairs -XX:+UseNUMA -XX:-DontCompileHugeMethods -XX:+UseCMoveUnconditionally -XX:+UseFPUForSpilling -XX:+UseNewLongLShift -XX:+UseVectorCmov -XX:+UseXMMForArrayCopy -XX:+UseXmmI2D -XX:+UseXmmI2F -XX:+UseXmmLoadAndClearUpper -XX:+UseXmmRegToRegMoveAll -Dfile.encoding=UTF-8 -Djdk.nio.maxCachedBufferSize=262144 -Dgraal.TuneInlinerExploration=1 -Dgraal.CompilerConfiguration=enterprise -Dgraal.UsePriorityInlining=true -Dgraal.Vectorization=true -Dgraal.OptDuplication=true -Dgraal.DetectInvertedLoopsAsCounted=true -Dgraal.LoopInversion=true -Dgraal.VectorizeHashes=true -Dgraal.EnterprisePartialUnroll=true -Dgraal.VectorizeSIMD=true -Dgraal.StripMineNonCountedLoops=true -Dgraal.SpeculativeGuardMovement=true -Dgraal.InfeasiblePathCorrelation=true -Dlog4j2.formatMsgNoLookups=true -Dcom.sun.jndi.ldap.object.trustURLCodebase=false —add-modules jdk.incubator.vector -jar server.jar nogui

Спёрто отсюда https://github.com/etil2jz/etil-minecraft-flags
Считай уже поменял
 
Строка запуска для серверов использующих 12 гб озу и меньше
Код:
java -server -Xms8G -Xmx8G -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+UnlockDiagnosticVMOptions -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 -XX:-UseBiasedLocking -XX:+EnableJVMCIProduct -XX:+EnableJVMCI -XX:+UseJVMCICompiler -XX:+EagerJVMCI -XX:UseAVX=2 -XX:+UseStringDeduplication -XX:+UseFastUnorderedTimeStamps -XX:+UseAES -XX:+UseAESIntrinsics -XX:UseSSE=4 -XX:AllocatePrefetchStyle=1 -XX:+UseLoopPredicate -XX:+RangeCheckElimination -XX:+EliminateLocks -XX:+DoEscapeAnalysis -XX:+UseCodeCacheFlushing -XX:+UseFastJNIAccessors -XX:+OptimizeStringConcat -XX:+UseCompressedOops -XX:+UseThreadPriorities -XX:+OmitStackTraceInFastThrow -XX:+TrustFinalNonStaticFields -XX:ThreadPriorityPolicy=1 -XX:+UseInlineCaches -XX:+RewriteBytecodes -XX:+RewriteFrequentPairs -XX:+UseNUMA -XX:-DontCompileHugeMethods -XX:+UseCMoveUnconditionally -XX:+UseFPUForSpilling -XX:+UseNewLongLShift -XX:+UseVectorCmov -XX:+UseXMMForArrayCopy -XX:+UseXmmI2D -XX:+UseXmmI2F -XX:+UseXmmLoadAndClearUpper -XX:+UseXmmRegToRegMoveAll -Dfile.encoding=UTF-8 -Djdk.nio.maxCachedBufferSize=262144 -Dgraal.TuneInlinerExploration=1 -Dgraal.CompilerConfiguration=enterprise -Dgraal.UsePriorityInlining=true -Dgraal.Vectorization=true -Dgraal.OptDuplication=true -Dgraal.DetectInvertedLoopsAsCounted=true -Dgraal.LoopInversion=true -Dgraal.VectorizeHashes=true -Dgraal.EnterprisePartialUnroll=true -Dgraal.VectorizeSIMD=true -Dgraal.StripMineNonCountedLoops=true -Dgraal.SpeculativeGuardMovement=true -Dgraal.InfeasiblePathCorrelation=true --add-modules jdk.incubator.vector -jar server.jar nogui
 
Строка запуска для серверов использующих 12 гб озу и меньше
Код:
java -server -Xms8G -Xmx8G -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+UnlockDiagnosticVMOptions -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 -XX:-UseBiasedLocking -XX:+EnableJVMCIProduct -XX:+EnableJVMCI -XX:+UseJVMCICompiler -XX:+EagerJVMCI -XX:UseAVX=2 -XX:+UseStringDeduplication -XX:+UseFastUnorderedTimeStamps -XX:+UseAES -XX:+UseAESIntrinsics -XX:UseSSE=4 -XX:AllocatePrefetchStyle=1 -XX:+UseLoopPredicate -XX:+RangeCheckElimination -XX:+EliminateLocks -XX:+DoEscapeAnalysis -XX:+UseCodeCacheFlushing -XX:+UseFastJNIAccessors -XX:+OptimizeStringConcat -XX:+UseCompressedOops -XX:+UseThreadPriorities -XX:+OmitStackTraceInFastThrow -XX:+TrustFinalNonStaticFields -XX:ThreadPriorityPolicy=1 -XX:+UseInlineCaches -XX:+RewriteBytecodes -XX:+RewriteFrequentPairs -XX:+UseNUMA -XX:-DontCompileHugeMethods -XX:+UseCMoveUnconditionally -XX:+UseFPUForSpilling -XX:+UseNewLongLShift -XX:+UseVectorCmov -XX:+UseXMMForArrayCopy -XX:+UseXmmI2D -XX:+UseXmmI2F -XX:+UseXmmLoadAndClearUpper -XX:+UseXmmRegToRegMoveAll -Dfile.encoding=UTF-8 -Djdk.nio.maxCachedBufferSize=262144 -Dgraal.TuneInlinerExploration=1 -Dgraal.CompilerConfiguration=enterprise -Dgraal.UsePriorityInlining=true -Dgraal.Vectorization=true -Dgraal.OptDuplication=true -Dgraal.DetectInvertedLoopsAsCounted=true -Dgraal.LoopInversion=true -Dgraal.VectorizeHashes=true -Dgraal.EnterprisePartialUnroll=true -Dgraal.VectorizeSIMD=true -Dgraal.StripMineNonCountedLoops=true -Dgraal.SpeculativeGuardMovement=true -Dgraal.InfeasiblePathCorrelation=true --add-modules jdk.incubator.vector -jar server.jar nogui
Строка запуска для серверов использующих больше 12 гб озу
Код:
java -server -Xms16G -Xmx16G -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+UnlockDiagnosticVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1NewSizePercent=40 -XX:G1MaxNewSizePercent=50 -XX:G1HeapRegionSize=16M -XX:G1ReservePercent=15 -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=20 -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:-UseBiasedLocking -XX:+EnableJVMCIProduct -XX:+EnableJVMCI -XX:+UseJVMCICompiler -XX:+EagerJVMCI -XX:UseAVX=2 -XX:+UseStringDeduplication -XX:+UseFastUnorderedTimeStamps -XX:+UseAES -XX:+UseAESIntrinsics -XX:UseSSE=4 -XX:AllocatePrefetchStyle=1 -XX:+UseLoopPredicate -XX:+RangeCheckElimination -XX:+EliminateLocks -XX:+DoEscapeAnalysis -XX:+UseCodeCacheFlushing -XX:+UseFastJNIAccessors -XX:+OptimizeStringConcat -XX:+UseCompressedOops -XX:+UseThreadPriorities -XX:+OmitStackTraceInFastThrow -XX:+TrustFinalNonStaticFields -XX:ThreadPriorityPolicy=1 -XX:+UseInlineCaches -XX:+RewriteBytecodes -XX:+RewriteFrequentPairs -XX:+UseNUMA -XX:-DontCompileHugeMethods -XX:+UseCMoveUnconditionally -XX:+UseFPUForSpilling -XX:+UseNewLongLShift -XX:+UseVectorCmov -XX:+UseXMMForArrayCopy -XX:+UseXmmI2D -XX:+UseXmmI2F -XX:+UseXmmLoadAndClearUpper -XX:+UseXmmRegToRegMoveAll -Dfile.encoding=UTF-8 -Djdk.nio.maxCachedBufferSize=262144 -Dgraal.TuneInlinerExploration=1 -Dgraal.CompilerConfiguration=enterprise -Dgraal.UsePriorityInlining=true -Dgraal.Vectorization=true -Dgraal.OptDuplication=true -Dgraal.DetectInvertedLoopsAsCounted=true -Dgraal.LoopInversion=true -Dgraal.VectorizeHashes=true -Dgraal.EnterprisePartialUnroll=true -Dgraal.VectorizeSIMD=true -Dgraal.StripMineNonCountedLoops=true -Dgraal.SpeculativeGuardMovement=true -Dgraal.InfeasiblePathCorrelation=true --add-modules jdk.incubator.vector -jar server.jar nogui
 
Назад
Верх