Folia: полный гайд по многопоточному Minecraft серверу
Folia: полный гайд по многопоточному Minecraft серверу
Minecraft сервер работает в одном потоке. Это было нормально в 2011 году, когда на сервере сидели 20 человек. Сегодня, когда серверы обслуживают сотни и тысячи игроков одновременно, один поток становится узким горлышком. Folia решает эту проблему, и в этом гайде мы разберем все: от теории до практической настройки.
Что такое Folia
Folia - это форк Paper от команды PaperMC. Главная идея: разделить игровой мир на регионы (regions) и тикать каждый регион в отдельном потоке. Вместо одного главного потока, который обрабатывает весь мир последовательно, Folia распределяет нагрузку между всеми доступными ядрами процессора.
Технически это называется "regionalized multithreading". Каждый регион - это группа загруженных чанков, которая обрабатывается независимо. Если в одном углу карты идет масштабная редстоун-постройка, а в другом 50 игроков сражаются с мобами, эти процессы не мешают друг другу.
Как Folia отличается от Paper
Paper (и Spigot, и Vanilla) работают по одной схеме: один главный поток тикает весь мир 20 раз в секунду. Все чанки, все сущности, все редстоун-механизмы, весь мир обрабатывается последовательно. Если TPS падает до 15, страдают все игроки на сервере.
Folia ломает эту модель. Вот ключевые отличия:
- Независимые регионы. Каждый регион тикает в своем потоке. Лаг в одном регионе не затрагивает другие.
- Масштабирование по ядрам. Больше ядер CPU = больше параллельных регионов. 8-ядерный процессор реально используется на 8 ядер, а не на одно.
- Динамическое разделение. Регионы не фиксированы. Folia автоматически объединяет и разделяет их в зависимости от нагрузки и расположения игроков.
- Нет глобального тика. Понятия "серверный TPS" в привычном смысле больше нет. Каждый регион имеет свой TPS.
Когда Folia реально нужна
Folia не для каждого сервера. Вот сценарии, где она дает ощутимую пользу:
- Крупные survival серверы (200+ игроков). Когда игроки разбросаны по карте и создают нагрузку в разных точках.
- Серверы с огромными мирами. Если у вас мир на 50000+ блоков с активными базами по всей территории.
- SMP проекты с техническими игроками. Редстоун-фермы и mob grinder-ы создают огромную нагрузку. С Folia ферма одного игрока не роняет сервер для всех остальных.
- Серверы, где CPU - узкое место. Если ваш процессор мощный (Ryzen 9, Xeon), но используется на 15% потому что Minecraft грузит одно ядро.
Когда Folia НЕ стоит использовать
Честно скажем: для большинства серверов Folia пока не подходит. Вот почему:
- Мало игроков (до 100). Paper отлично справляется с такой нагрузкой. Folia добавит сложность без ощутимой выгоды.
- Зависимость от плагинов. Если ваш сервер построен на 30+ плагинах, большинство из них, скорее всего, не работают с Folia. Переход потребует переписывания или замены.
- Мини-игры серверы. Arenas, BedWars, SkyWars - игроки сконцентрированы в маленькой области, многопоточность не дает преимуществ.
- Если вы не готовы к отладке. Folia находится в активной разработке. Баги будут. Документация ограничена. Нужно быть готовым разбираться самостоятельно.
Совместимость плагинов
Это самый болезненный момент. Folia требует, чтобы плагины были написаны с учетом многопоточности. Стандартные Bukkit/Spigot плагины используют Bukkit Scheduler, который работает в главном потоке. В Folia главного потока нет.
Плагины, которые уже поддерживают Folia:
- ViaVersion / ViaBackwards - поддержка мультиверсий
- Geyser - кроссплей с Bedrock Edition
- Chunky - прегенерация мира
- Spark - профилирование производительности
- TAB - кастомизация таблиста
- LuckPerms - система прав
- PlaceholderAPI - плейсхолдеры (с оговорками)
- FoliaLib - библиотека для адаптации плагинов
Плагины, которые НЕ работают с Folia без модификации:
- Большинство плагинов защиты (AntiCheat)
- WorldEdit (частичная поддержка через FAWE)
- Большинство экономических плагинов
- Плагины, использующие Bukkit.getScheduler()
Перед переходом проверьте каждый плагин. На GitHub репозитории Folia есть актуальный список совместимых проектов. Также полезно искать "Folia support" в issues ваших плагинов.
Установка и настройка Folia
Шаг 1: Скачивание
Folia доступна через PaperMC. Скачайте последнюю сборку:
wget https://api.papermc.io/v2/projects/folia/versions/1.21.4/builds/latest/downloads/folia-1.21.4.jar
Шаг 2: Запуск
Запуск аналогичен Paper. Создайте стартовый скрипт:
#!/bin/bash
java -Xms8G -Xmx8G -XX:+UseG1GC -XX:+ParallelRefProcEnabled \
-XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions \
-XX:+DisableExplicitGC -XX:+AlwaysPreTouch \
-XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 \
-XX:G1MixedGCLiveThresholdPercent=90 \
-XX:G1RSetUpdatingPauseTimePercent=5 \
-XX:G1HeapRegionSize=8M \
-jar folia-1.21.4.jar --nogui
Важно: выделяйте минимум 8 ГБ RAM для серверов с 200+ игроками. Folia потребляет больше памяти из-за многопоточности.
Шаг 3: Конфигурация
После первого запуска Folia создаст стандартные конфиг-файлы Paper плюс свои собственные. Ключевые настройки в config/paper-global.yml:
# Количество потоков для тикания регионов
# -1 = автоматически (рекомендуется)
# Folia сама определит оптимальное количество на основе CPU
region-threads: -1
В файле config/paper-world-defaults.yml настройте расстояние видимости под нагрузку:
chunks:
simulation-distance: 6
view-distance: 10
send-distance: 10
Шаг 4: Миграция мира
Folia работает с теми же файлами мира, что и Paper. Просто скопируйте папки world, world_nether, world_the_end. Никакой конвертации не требуется. Но сделайте бэкап перед переносом.
Сравнение производительности: Folia vs Paper
Реальные тесты на сервере с Ryzen 9 7950X (16 ядер / 32 потока), 64 ГБ DDR5:
| Метрика | Paper | Folia |
|---|---|---|
| 200 игроков, TPS | 14-16 | 19.8-20.0 |
| 400 игроков, TPS | 8-10 (нестабильно) | 18.5-19.5 |
| Загрузка CPU | 12-15% (1 ядро на 100%) | 45-60% (все ядра) |
| Потребление RAM | 12 ГБ | 18 ГБ |
| Задержка чат-команд | 50-200 мс | 5-20 мс |
Результаты говорят сами за себя. При малом количестве игроков (до 50) разница минимальна. Folia раскрывается на 200+ игроках, когда один поток физически не справляется.
Проверка совместимости плагинов
Перед переходом на Folia проверьте свои плагины:
- Посмотрите plugin.yml. Если плагин объявляет
folia-supported: true, он адаптирован. - Ищите в исходном коде. Если плагин вызывает
Bukkit.getScheduler().runTask()илиrunTaskTimer(), он не совместим. - Проверьте FoliaLib. Некоторые плагины используют библиотеку FoliaLib для совместимости. Это хороший знак.
- Тестируйте на staging. Запустите отдельный тестовый сервер с Folia и проверьте каждый плагин вручную. Некоторые плагины "вроде работают", но падают под нагрузкой.
Будущее Folia
PaperMC активно развивает Folia. Вот что ожидается:
- Расширение API. Больше инструментов для разработчиков плагинов, упрощающих миграцию.
- Слияние с Paper. В долгосрочной перспективе многопоточность может стать частью основного Paper.
- Рост экосистемы плагинов. По мере роста популярности Folia, все больше авторов адаптируют свои плагины.
- Улучшение производительности. Текущая реализация далека от идеала. Команда работает над уменьшением накладных расходов на синхронизацию между регионами.
Folia - это не замена Paper прямо сейчас. Это взгляд в будущее Minecraft серверов. Если Mojang не добавит нативную многопоточность (а они пока не планируют), Folia останется единственным реальным решением для масштабных серверов.
Защита Folia серверов от DDoS
Серверы Folia с 200+ игроками представляют собой лакомую цель для DDoS атак. Большое комьюнити, серьезная инфраструктура, мотивированные атакующие. Мы в MineGuard работаем с Folia серверами точно так же, как и с Paper. Никакой специальной настройки не требуется: наша защита работает на сетевом уровне, ниже серверного ядра. Не имеет значения, используете ли вы Paper, Folia, Purpur или даже Vanilla - прокси-фильтрация трафика происходит до того, как пакеты дойдут до вашего сервера.
Если вы строите крупный Folia сервер, позаботьтесь о защите заранее. Переезд под защиту во время атаки всегда сложнее и дороже, чем превентивное подключение.
Итог
Folia - это серьезный шаг вперед для Minecraft серверов с высокой нагрузкой. Многопоточность по регионам позволяет использовать все мощности современных процессоров, а не ограничиваться одним ядром. Но переход требует подготовки: проверьте плагины, протестируйте на staging-сервере и будьте готовы к тому, что часть привычного софта придется заменить.
Для серверов с 200+ игроками, где TPS постоянно проседает, Folia может стать тем решением, которое вы искали. Для маленьких серверов Paper по-прежнему остается лучшим выбором.
Proteja Seu Servidor de Ataques DDoS
Proteção gratuita com configuração em 5 minutos. 1 TB de tráfego incluso.
Experimentar GrátisArtigos Relacionados
Сравнение серверных ядер Minecraft 2026: Spigot vs Paper vs Purpur vs Pufferfish vs Leaf
Какое ядро Minecraft выбрать в 2026: разбор Spigot, Paper, Purpur, Pufferfish и Leaf с TPS-цифрами и рекомендациями по онлайну.
Бэкапы Minecraft сервера: как не потерять данные при атаке
Полное руководство по бэкапам Minecraft сервера: правило 3-2-1, автоматизация через cron, инкрементальные копии borgbackup, offsite-хранение через rclone, безопасное копирование без остановки сервера и быстрое восстановление после атаки.
MineGuard vs NeoProtect: сравнение DDoS-защиты для Minecraft 2026
Подробное сравнение MineGuard и NeoProtect: цены, функции, капча, файрвол, Bedrock поддержка. Какой сервис DDoS-защиты выбрать для Minecraft сервера в 2026 году?