Как оптимизировать сервер Fabric
1. Подготовка окружения на выделенном сервере proxify.cloud
Перед настройкой самого игрового сервера необходимо оптимизировать операционную систему Ubuntu. Все действия выполняются через SSH (доступ к консоли сервера есть в панели proxify.cloud во вкладке «Консоль» или по IP-адресу).
Обновите пакеты и установите базовые утилиты:
apt update && apt upgrade -y apt install -y htop iotop net-tools curl wget git openjdk-21-jdk-headlessFabric 1.20.4+ требует Java 21. Проверьте версией:
java -version.Настройте лимиты открытых файлов (важно для больших миров и плагинов):
cat <<EOF >> /etc/security/limits.conf * soft nofile 1000000 * hard nofile 1000000 root soft nofile 1000000 root hard nofile 1000000 EOFДобавьте в
/etc/pam.d/common-session:echo "session required pam_limits.so" >> /etc/pam.d/common-sessionОтключите swap (на выделенном сервере с достаточным RAM это снижает лаги):
swapoff -a sed -i '/swap/d' /etc/fstabНастройте
sysctlдля сетевого стека и памяти (создайте/etc/sysctl.d/99-minecraft.conf):cat <<EOF > /etc/sysctl.d/99-minecraft.conf net.core.somaxconn = 1024 net.ipv4.tcp_fastopen = 3 net.ipv4.tcp_tw_reuse = 1 vm.swappiness = 1 vm.dirty_ratio = 10 vm.dirty_background_ratio = 5 EOF sysctl --systemПерезагрузите сервер через панель proxify.cloud (кнопка «Reboot») или командой
reboot, чтобы применить лимиты и sysctl.
2. Выбор и настройка Java-рантайма
Для Fabric рекомендуется Eclipse Temurin или Azul Zulu (сборки OpenJDK с оптимизациями). Установим Temurin 21:
Добавьте репозиторий и установите:
apt install -y gpg mkdir -p /etc/apt/keyrings wget -qO - https://packages.adoptium.net/artifactory/api/gpg/key/public | gpg --dearmor > /etc/apt/keyrings/adoptium.gpg echo "deb [signed-by=/etc/apt/keyrings/adoptium.gpg] https://packages.adoptium.net/artifactory/deb jammy main" > /etc/apt/sources.list.d/adoptium.list apt update && apt install -y temurin-21-jdkУстановите дефолтный Java:
update-alternatives --config java # Выберите Temurin 21
3. Установка Fabric Server
Создайте отдельного пользователя для безопасности (не запускайте от root):
Создайте пользователя и директорию:
adduser --disabled-password --gecos "" mcuser su - mcuser mkdir -p ~/server && cd ~/serverСкачайте установщик Fabric (замените версию на актуальную, например 1.20.6):
FABRIC_VERSION=1.20.6 INSTALLER_VERSION=0.11.2 LOADER_VERSION=0.16.9 wget "https://maven.fabricmc.net/net/fabricmc/fabric-installer/${INSTALLER_VERSION}/fabric-installer-${INSTALLER_VERSION}.jar" -O fabric-installer.jar java -jar fabric-installer.jar server -mcversion ${FABRIC_VERSION} -loader ${LOADER_VERSION} -downloadMinecraftФайл
fabric-server-launch.jar— это точка входа.server.jar(vanilla) остается рядом.Примите EULA:
echo "eula=true" > eula.txt
4. Оптимизация JVM-флагов (файл start.sh)
Создайте скрипт запуска с профессиональными флагами для G1GC/ZGC. Для 16-32 ГБ RAM лучше G1, для 32+ ГБ — ZGC.
Создайте
start.sh:cat <<'EOF' > start.sh #!/bin/bash # Настройки памяти (пример для 24 ГБ выделенных серверу из 32 ГБ) HEAP="-Xms20G -Xmx20G" # Метаспейс (моды грузят много классов) METASPACE="-XX:MetaspaceSize=512m -XX:MaxMetaspaceSize=2g" # GC: G1GC для куч < 32G, ZGC для > 32G GC_FLAGS="-XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=50 -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" # Диагностика (логи GC в файл для анализа) GC_LOG="-Xlog:gc*:logs/gc.log:time,uptime,level,tags:filecount=5,filesize=10m" # Агент для таймингов (Spark, WarmUp) - раскомментируйте при необходимости # AGENT="-javaagent:plugins/spark.jar" JAVA_OPTS="${HEAP} ${METASPACE} ${GC_FLAGS} ${GC_LOG} ${AGENT}" echo "Starting server with: ${JAVA_OPTS}" java ${JAVA_OPTS} -jar fabric-server-launch.jar nogui EOF chmod +x start.shСоздайте директорию для логов GC:
mkdir -p logsЗапустите один раз для генерации конфигов:
./start.sh # Дождитесь "Done!", введите stop
5. Настройка server.properties
Отредактируйте server.properties для производительности:
cat <<EOF > server.properties
# Сеть
network-compression-threshold=256
max-tick-time=60000
enable-status=true
enable-query=false
# Мир
view-distance=6
simulation-distance=5
max-chained-neighbor-updates=1000000
max-auto-save-chunks-per-tick=8
optimize-explosion-raycasts=true
# Энтити
entity-broadcast-range-percentage=80
entity-tracking-range-players=48
entity-tracking-range-animals=48
entity-tracking-range-monsters=48
entity-tracking-range-misc=32
entity-tracking-range-other=64
# Спавн
spawn-protection=0
max-players=100
spawn-monsters=true
spawn-animals=true
spawn-npcs=true
# Прочее
use-native-transport=true
sync-chunk-writes=true
region-file-compression=zstd
EOF
Параметры view-distance и simulation-distance — главные регуляторы нагрузки. Для PvP ставьте 6/5, для выживания с модами можно 8/6.
6. Установка обязательных модов для оптимизации (server-side)
Положите .jar файлы в папку mods/. Скачивайте через wget с Modrinth/GitHub Releases (версии под вашу версию MC + Fabric).
- Lithium — оптимизация игровой логики (физика, ИИ, блоки) без изменения ванильного поведения.
- Starlight — переписанный движок света (в 10-50 раз быстрее ванильного).
- FerriteCore — снижение потребления RAM (компактизация данных моделей/состояний).
- Krypton — оптимизация сетевого стека и криптографии.
- Alternate Current — быстрый расчет редстоуна.
- C2ME (Chunk Cache & Memory Enhancements) — кэширование чанков, ускорение генерации.
- Entity Culling (серверная часть) — не отправляет пакеты за невидимыми энтити.
- ModernFix — критически важен для модпаков: ускоряет загрузку, чинит утечки памяти, оптимизирует микшеры.
Пример скачивания (замените URL на актуальные):
mkdir -p mods
cd mods
# Пример для 1.20.6 (проверьте актуальные версии на modrinth.com)
wget "https://cdn.modrinth.com/data/.../lithium-fabric-0.11.0.jar" -O lithium.jar
wget "https://cdn.modrinth.com/data/.../starlight-1.0.0.jar" -O starlight.jar
wget "https://cdn.modrinth.com/data/.../ferritecore-6.0.0.jar" -O ferritecore.jar
wget "https://cdn.modrinth.com/data/.../krypton-0.3.0.jar" -O krypton.jar
wget "https://cdn.modrinth.com/data/.../alternatecurrent-2.0.0.jar" -O alternatecurrent.jar
wget "https://cdn.modrinth.com/data/.../c2me-0.2.0.jar" -O c2me.jar
wget "https://cdn.modrinth.com/data/.../modernfix-5.18.0.jar" -O modernfix.jar
cd ..
Важно: После добавления модов удалите папки world, world_nether, world_the_end (если это новый сервер) или запустите с флагом --forceUpgrade один раз для пересчета света Starlight:
java -jar fabric-server-launch.jar --forceUpgrade nogui
7. Конфигурация модов (файлы в config/)
Создайте/отредактируйте ключевые конфиги для максимального эффекта.
Lithium (
config/lithium.properties):# Отключайте, если есть конфликты с другими модами ИИ optimizeEntityAID=true optimizeBlockTick=true optimizeExplosions=true optimizeHopper=trueFerriteCore (`config/
Комментарии (0)