- Баллы
- 66
- Имя в Minecraft
- iForgotPassword
Привет всем! У меня есть статья Создание сервера с нуля от А до Я. Там есть пункт про оптимизацию, но дан он совсем коротко. Тема большая, поэтому разбираю ее отдельно и подробно.
Часть материала - вольный перевод зарубежных статей, ссылки на оригиналы прилагаю.
Часть 1. Выбор ядра и версии
Сразу предупрежу. Руководства, которое даст идеальный результат, не существует. У каждого сервера свои задачи и свой предел того, чем Вы готовы пожертвовать ради производительности. Я объясняю, какой параметр на что влияет и что именно он меняет, а подгонять значения под себя Вы будете сами.
Версия
Начнем с неприятного для тех, кто давно не следил. Схема нумерации версий Minecraft изменилась. С декабря 2025 версия выглядит как год.дроп.хотфикс. Никакой 1.22 не будет и не появится.
Теперь важное, и это касается темы статьи напрямую.
ВАЖНО! Paper поддерживает только 26.2 и 26.1.2. Ветка 1.21.11 переведена в статус неподдерживаемой, и заплатки на эксплойты туда больше не приезжают. Оптимизировать сервер, который в любой момент положат известной дырой, занятие так себе, поэтому первым делом обновляемся.
А что делать, если игроки сидят на старых клиентах? Ставить последнюю версию и добавлять ViaVersion с ViaBackwards. Это честнее, чем сознательно закапываться в мертвую версию.
Ядро
Выбор ядра влияет на производительность сильнее, чем половина параметров из этой статьи. Живых вариантов сейчас хватает, но есть и такие, от которых лучше держаться подальше.
Что я рекомендую:
Paper - дефолт без вариантов. Самое популярное ядро, на нем форкаются почти все остальные. Чинит несоответствия ванильных механик, документация у него разложена по полочкам, а профилировщик spark идет прямо в комплекте. Не знаете, что выбрать - берите его. Дальше по статье я исхожу из того, что у Вас именно Paper.
Purpur - это Paper плюс несколько сотен геймплейных настроек. Поведение мобов, гравитация, рецепты, фантомы и прочее в том же духе. Ставится вместо Paper без переделок, плагины не ломает. Имеет смысл, если Вы реально будете крутить эти ручки, а не поставите ради галочки.
Leaf - главное новое имя за последние пару лет. Форк Paper, который собирает оптимизации из Pufferfish, Purpur, Luminol, Moonrise и Plazma в одну сборку и добавляет свои. Многопоточности в стиле Folia тут нет, модель обычная, поэтому плагины работают почти все. Оговорка тут одна. Проект молодой, и между минорными релизами совместимость иногда ломается. Для домашнего сервера и небольшого SMP отлично, на боевой проект с живыми деньгами - на свой риск.
От чего держаться подальше
Если Вы все-таки сидите на ванили, Fabric или Spigot, зайдите в server.properties и поставьте sync-chunk-writes на false. В Paper и его форках эта опция принудительно выключена, а на остальных ядрах ее надо выключать руками. Она позволяет сохранять чанки вне основного потока и заметно снимает нагрузку.
>>> Часть 2: Java, запуск и подготовка мира (тык)
Часть материала - вольный перевод зарубежных статей, ссылки на оригиналы прилагаю.
Статья не влезает в один пост, поэтому разбита на части. Части 2 и далее лежат в комментариях этой темы.
Часть 1 (этот пост) - Выбор ядра и версии
Часть 2 - Java, запуск и подготовка мира (тык)
Часть 3 - Сеть и чанки (тык)
Часть 4 - Мобы (тык)
Часть 5 - Предметы, редстоун и мелочи (тык)
Часть 6 - Общие настройки и настройки по мирам (тык)
Часть 7 - Anti-Xray (тык)
Часть 8 - Чем мерить лаги и чего не делать (тык)
Часть 1 (этот пост) - Выбор ядра и версии
Часть 2 - Java, запуск и подготовка мира (тык)
Часть 3 - Сеть и чанки (тык)
Часть 4 - Мобы (тык)
Часть 5 - Предметы, редстоун и мелочи (тык)
Часть 6 - Общие настройки и настройки по мирам (тык)
Часть 7 - Anti-Xray (тык)
Часть 8 - Чем мерить лаги и чего не делать (тык)
minecraft-optimization - основа этой статьи, живой репозиторий, который обновляют под каждую версию
Документация Paper - справочники по всем конфигам
Блог-пост me4502 о проблемах команды /reload
Настройка Anti-Xray - официальное руководство, выросшее из рекомендаций stonar96
Minecraft exploits and how to fix them - разбор дыр, которые роняют сервер
Документация Paper - справочники по всем конфигам
Блог-пост me4502 о проблемах команды /reload
Настройка Anti-Xray - официальное руководство, выросшее из рекомендаций stonar96
Minecraft exploits and how to fix them - разбор дыр, которые роняют сервер
Сущность (entity) - все динамические и движущиеся объекты в мире. Мобы, игроки, выпавшие предметы, падающий песок и гравий.
Тик - один шаг игровой логики. В одной секунде их 20.
tps (tick per second) - сколько тиков сервер успевает за секунду. Норма 20, ниже - лаги.
mspt (milliseconds per tick) - сколько миллисекунд ушло на один тик. Пока значение ниже 50, сервер успевает.
Чанк - кусок мира 16 на 16 блоков по всей высоте. Сервер грузит, считает и сохраняет мир именно чанками.
Тик - один шаг игровой логики. В одной секунде их 20.
tps (tick per second) - сколько тиков сервер успевает за секунду. Норма 20, ниже - лаги.
mspt (milliseconds per tick) - сколько миллисекунд ушло на один тик. Пока значение ниже 50, сервер успевает.
Чанк - кусок мира 16 на 16 блоков по всей высоте. Сервер грузит, считает и сохраняет мир именно чанками.
Часть 1. Выбор ядра и версии
Сразу предупрежу. Руководства, которое даст идеальный результат, не существует. У каждого сервера свои задачи и свой предел того, чем Вы готовы пожертвовать ради производительности. Я объясняю, какой параметр на что влияет и что именно он меняет, а подгонять значения под себя Вы будете сами.
Версия
Начнем с неприятного для тех, кто давно не следил. Схема нумерации версий Minecraft изменилась. С декабря 2025 версия выглядит как год.дроп.хотфикс. Никакой 1.22 не будет и не появится.
- 26.1 "Tiny Takeover" - 24 марта 2026. Первый релиз в новом формате, первый полностью деобфусцированный и первый, которому нужна Java 25.
- 26.2 "Chaos Cubed" - 16 июня 2026. Текущий релиз, на него и ориентируемся.
- 26.3 - в снапшотах с июня, релиз ориентировочно к концу 2026.
Данные bStats на 31 августа 2026, выборка примерно 184 000 серверов.
26.2 ~ 57.100 серверов (31%)
1.21.11 ~ 51.200 (28%)
26.1.2 ~ 20.600 (11%)
1.21.4 ~ 7.900
1.21.10 ~ 6.900
1.21.8 ~ 6.700
1.21.1 ~ 5.400
1.20.1 ~ 4.700
1.8.8 ~ 4.300
1.12.2 ~ 3.400
Если сложить по веткам, выходит 26.x около 43%, 1.21.x около 45%, а весь легаси (1.8.8 плюс 1.12.2) примерно 4%. Разговоры про то, что все поголовно сидят на 1.12.2, статистикой давно не подтверждаются.
26.2 ~ 57.100 серверов (31%)
1.21.11 ~ 51.200 (28%)
26.1.2 ~ 20.600 (11%)
1.21.4 ~ 7.900
1.21.10 ~ 6.900
1.21.8 ~ 6.700
1.21.1 ~ 5.400
1.20.1 ~ 4.700
1.8.8 ~ 4.300
1.12.2 ~ 3.400
Если сложить по веткам, выходит 26.x около 43%, 1.21.x около 45%, а весь легаси (1.8.8 плюс 1.12.2) примерно 4%. Разговоры про то, что все поголовно сидят на 1.12.2, статистикой давно не подтверждаются.
Теперь важное, и это касается темы статьи напрямую.
ВАЖНО! Paper поддерживает только 26.2 и 26.1.2. Ветка 1.21.11 переведена в статус неподдерживаемой, и заплатки на эксплойты туда больше не приезжают. Оптимизировать сервер, который в любой момент положат известной дырой, занятие так себе, поэтому первым делом обновляемся.
А что делать, если игроки сидят на старых клиентах? Ставить последнюю версию и добавлять ViaVersion с ViaBackwards. Это честнее, чем сознательно закапываться в мертвую версию.
Ядро
Выбор ядра влияет на производительность сильнее, чем половина параметров из этой статьи. Живых вариантов сейчас хватает, но есть и такие, от которых лучше держаться подальше.
Что я рекомендую:
Paper - дефолт без вариантов. Самое популярное ядро, на нем форкаются почти все остальные. Чинит несоответствия ванильных механик, документация у него разложена по полочкам, а профилировщик spark идет прямо в комплекте. Не знаете, что выбрать - берите его. Дальше по статье я исхожу из того, что у Вас именно Paper.
Purpur - это Paper плюс несколько сотен геймплейных настроек. Поведение мобов, гравитация, рецепты, фантомы и прочее в том же духе. Ставится вместо Paper без переделок, плагины не ломает. Имеет смысл, если Вы реально будете крутить эти ручки, а не поставите ради галочки.
Leaf - главное новое имя за последние пару лет. Форк Paper, который собирает оптимизации из Pufferfish, Purpur, Luminol, Moonrise и Plazma в одну сборку и добавляет свои. Многопоточности в стиле Folia тут нет, модель обычная, поэтому плагины работают почти все. Оговорка тут одна. Проект молодой, и между минорными релизами совместимость иногда ломается. Для домашнего сервера и небольшого SMP отлично, на боевой проект с живыми деньгами - на свой риск.
Те же данные bStats на 31 августа 2026.
Paper - 127.828 серверов (70%)
Purpur - 17.349 (9.4%)
Spigot - 12.497 (6.8%)
Leaf - 4.229 (2.3%)
UniverseSpigot - 2.005
Arclight - 1.604
Folia - 1.186
Mohist - 1.003
AdvancedSlimePaper - 816
CatServer - 772
Canvas - 594
Leaves - 488
Pufferfish - 484
Bukkit и CraftBukkit - 434
DivineMC - 168
Обратите внимание на пропорцию. Все споры про модные ядра идут вокруг нескольких процентов серверов, остальные спокойно сидят на Paper.
Пара имен из списка, которые я выше не разбирал. Leaves - форк Paper для технических серверов, он наоборот сохраняет часть ванильных механик и багов, на которых держатся фермы. AdvancedSlimePaper - формат хранения миров SlimeWorld, его берут под мини-игры. UniverseSpigot по цифрам заметен, но происхождение сборки я не проверял и ставить вслепую не советую.
Paper - 127.828 серверов (70%)
Purpur - 17.349 (9.4%)
Spigot - 12.497 (6.8%)
Leaf - 4.229 (2.3%)
UniverseSpigot - 2.005
Arclight - 1.604
Folia - 1.186
Mohist - 1.003
AdvancedSlimePaper - 816
CatServer - 772
Canvas - 594
Leaves - 488
Pufferfish - 484
Bukkit и CraftBukkit - 434
DivineMC - 168
Обратите внимание на пропорцию. Все споры про модные ядра идут вокруг нескольких процентов серверов, остальные спокойно сидят на Paper.
Пара имен из списка, которые я выше не разбирал. Leaves - форк Paper для технических серверов, он наоборот сохраняет часть ванильных механик и багов, на которых держатся фермы. AdvancedSlimePaper - формат хранения миров SlimeWorld, его берут под мини-игры. UniverseSpigot по цифрам заметен, но происхождение сборки я не проверял и ставить вслепую не советую.
Чаще всего спрашивают, когда уже Minecraft научится грузить все ядра процессора. Научился. Только платить за это придется совместимостью с плагинами.
Folia - официальная регионализированная многопоточность от самой команды PaperMC. Мир режется на регионы, каждый тикается в своем потоке, и сервер наконец утилизирует 32 ядра вместо одного.
Почему тогда всего 1.186 серверов при четырех тысячах звезд на GitHub? Потому что Folia ломает плагины. Автор плагина обязан думать про владение регионом при каждом обращении к миру, и это не "поправить пару вызовов". EssentialsX Folia официально не поддерживает и прямо предупреждает про потерю данных игроков. Новичку туда нельзя.
Canvas и DivineMC - экспериментальная многопоточность для тех, кто понимает, что делает. Canvas это гибрид Folia и Paper с опциональной регионализацией, DivineMC - форк Purpur с параллельным тиком чанков и миров. Обоим нужно 5 и больше физических ядер, на общем хостинге они смысла не имеют.
И еще одно, про любую регионализацию сразу. Если все Ваши игроки толкутся на спавне, они сидят в одном регионе, и выигрыша не будет вообще никакого. Многопоточность окупается там, где игроки размазаны по карте.
Folia - официальная регионализированная многопоточность от самой команды PaperMC. Мир режется на регионы, каждый тикается в своем потоке, и сервер наконец утилизирует 32 ядра вместо одного.
Почему тогда всего 1.186 серверов при четырех тысячах звезд на GitHub? Потому что Folia ломает плагины. Автор плагина обязан думать про владение регионом при каждом обращении к миру, и это не "поправить пару вызовов". EssentialsX Folia официально не поддерживает и прямо предупреждает про потерю данных игроков. Новичку туда нельзя.
Canvas и DivineMC - экспериментальная многопоточность для тех, кто понимает, что делает. Canvas это гибрид Folia и Paper с опциональной регионализацией, DivineMC - форк Purpur с параллельным тиком чанков и миров. Обоим нужно 5 и больше физических ядер, на общем хостинге они смысла не имеют.
И еще одно, про любую регионализацию сразу. Если все Ваши игроки толкутся на спавне, они сидят в одном регионе, и выигрыша не будет вообще никакого. Многопоточность окупается там, где игроки размазаны по карте.
Отдельная история для тех, кому нужны моды и плагины Bukkit одновременно. Тут живут Arclight (1.604 сервера), Mohist (1.003) и CatServer (772).
Работает это через прослойку, которая переводит вызовы Bukkit в моды, и прослойка эта дырявая по своей природе. Часть плагинов отваливается, часть багов не воспроизводится больше нигде, а помощи ждать особо неоткуда. Если можно обойтись без модов - обходитесь.
Работает это через прослойку, которая переводит вызовы Bukkit в моды, и прослойка эта дырявая по своей природе. Часть плагинов отваливается, часть багов не воспроизводится больше нигде, а помощи ждать особо неоткуда. Если можно обойтись без модов - обходитесь.
От чего держаться подальше
- Платные ядра, авторы которых обещают "асинхронность всего". С вероятностью 99,99% это развод.
- Bukkit, CraftBukkit и Spigot. По производительности они давно позади всего, к чему у Вас есть доступ.
- Pufferfish. Именно там придумали DAB - алгоритм, который реже тикает мозги дальних мобов. Вещь отличная, но проект фактически растворился в Leaf, и ставить его отдельно сейчас смысла мало.
- Форки третьего и четвертого колена. Чем дальше от Paper, тем больше нестабильности и тем меньше людей, способных помочь. Хотите еще производительности - оптимизируйте сервер, а не ищите ядро посвежее.
- Любые плагины, которые включают, выключают или перезагружают другие плагины во время работы сервера. В части 8 объясняю, почему это так плохо кончается.
Если Вы все-таки сидите на ванили, Fabric или Spigot, зайдите в server.properties и поставьте sync-chunk-writes на false. В Paper и его форках эта опция принудительно выключена, а на остальных ядрах ее надо выключать руками. Она позволяет сохранять чанки вне основного потока и заметно снимает нагрузку.
>>> Часть 2: Java, запуск и подготовка мира (тык)
Последнее редактирование:
