Лучшие ядра Minecraft для высокой производительности

В этой инструкции вы узнаете, как установить и настроить оптимальное ядро для Minecraft сервера на выделенном сервере с Ubuntu в панели Proxmox от proxify.cloud. Правильный выбор ядра позволяет получить максимальный FPS и TPS даже на больших онлайнах, снизить лаги и эффективно использовать ресурсы (CPU, RAM). Мы разберём самые производительные ядра (Paper, Purpur, Pufferfish) и дадим конкретные команды для их настройки.


Шаг 1: Первичная настройка сервера

Подключитесь к вашему серверу через SSH. IP-адрес, имя пользователя (обычно root) и пароль/SSH-ключ берутся из панели proxify.cloud (раздел «Виртуальные машины» → «Консоль» или вкладка «Сеть»).

ssh root@IP_вашего_сервера

После входа обновите систему и установите базовые утилиты:

apt update && apt upgrade -y
apt install -y screen wget curl nano

Шаг 2: Установка Java

Современные ядра требуют Java 17 или 21. Мы установим OpenJDK 21 (рекомендуется для свежих версий Minecraft).

apt install -y openjdk-21-jdk-headless
java -version

Если нужна более старая версия (например, для Minecraft 1.16.5), поставьте Java 11 и используйте соответствующие аргументы JVM.


Шаг 3: Выбор ядра – обзор

Для максимальной производительности рассматривайте следующие ядра (в порядке увеличения агрессивности оптимизаций):

  • Paper – стабильный стандарт, предсказуемое поведение.
  • Purpur – форк Paper с дополнительными настройками, позволяет отключать неиспользуемые механики.
  • Pufferfish – ещё более агрессивные оптимизации, включая Simd и Aikar’s Flags по умолчанию.
  • Airplane (устарело, но всё ещё работает) – экстремальная оптимизация для больших серверов.

Рекомендация: для большинства случаев используйте Purpur. Если нужна максимальная производительность и вы готовы тестировать – Pufferfish с аккуратной настройкой.


Шаг 4: Загрузка и настройка ядра

Создайте папку для сервера и перейдите в неё:

mkdir /home/minecraft && cd /home/minecraft

4.1. Скачайте выбранное ядро

Paper (последняя сборка для 1.21.1, уточнить версию можно на сайте):

wget https://api.papermc.io/v2/projects/paper/versions/1.21.1/builds/129/downloads/paper-1.21.1-129.jar -O server.jar

Purpur:

wget https://api.purpurmc.org/v2/purpur/1.21.1/latest/download -O server.jar

Pufferfish (пример для 1.20.4, актуальная версия на GitHub):

wget https://github.com/pufferfish-gg/Pufferfish/releases/download/v1.20.4/pufferfish-paperclip-1.20.4.jar -O server.jar

Примечание: Ядро должно быть переименовано в server.jar для удобства запуска. Версии обновляйте вручную, проверяя официальные источники.

4.2. Создайте скрипт запуска

Создайте файл start.sh:

nano start.sh

Вставьте содержимое (рекомендуемые флаги Aikar для Java 21+):

#!/bin/bash
java -Xms6G -Xmx6G \
     -XX:+UseG1GC \
     -XX:+ParallelRefProcEnabled \
     -XX:MaxGCPauseMillis=200 \
     -XX:+UnlockExperimentalVMOptions \
     -XX:+DisableExplicitGC \
     -XX:+AlwaysPreTouch \
     -XX:+PerfDisableSharedMem \
     -XX:G1HeapWastePercent=5 \
     -XX:G1MixedGCLiveThresholdPercent=85 \
     -XX:G1MixedGCCountTarget=4 \
     -XX:G1NewSizePercent=30 \
     -XX:G1HeapRegionSize=8M \
     -XX:G1ReservePercent=15 \
     -XX:G1HeapWastePercent=5 \
     -XX:MaxTenuringThreshold=1 \
     -jar server.jar nogui
  • Измените -Xms и -Xmx под доступную память (не более 80% от общей ОЗУ).
  • Для первого запуска достаточно -Xms1G -Xmx1G, затем настройте под нагрузку.

Сделайте скрипт исполняемым:

chmod +x start.sh

4.3. Запустите сервер для генерации файлов

Вы можете запустить в screen-сессии:

screen -S minecraft
./start.sh

Сервер создаст eula.txt, server.properties, бумажные конфиги. Примите лицензионное соглашение:

echo "eula=true" > eula.txt

Шаг 5: Оптимизация конфигурации

После первого запуска остановите сервер (кнопка /stop или Ctrl+C). Отредактируйте следующие файлы для повышения производительности.

5.1. paper-global.yml (ранее paper.yml)

Путь: /home/minecraft/config/paper-global.yml (для Paper 1.20+). Ключевые параметры:

chunks:
  max-auto-save-chunks-per-tick: 6        # снижаем нагрузку
  delay-chunk-unloads-by: 10s
  auto-save-interval: 300                 # автосохранение каждые 5 минут (по умолчанию 600)

misc:
  optimize-explosions: true               # обязательно
  redstone-implementation: EIGENSPACE     # оптимизация редстоуна
  load-inhabited-time: false              # ускоряет загрузку чанков

scoreboards:
  use-less-scoreboard-updates: true

entities:
  activation-range:
    water: 10
    villagers: 14
    flying: 30
    monster: 24
    raider: 48
    misc: 8

5.2. spigot.yml

settings:
  mob-spawner-tick-rate: 2                # спавнеры раз в 2 такта
  attribute:
    maxHealth:
      max: 2048
  moved-too-quickly-multiplier: 10.0     # снижает кик при лагах
  moved-wrongly-threshold: 0.5

world-settings:
  default:
    growth:
      cactus-modifier: 2
      cane-modifier: 2
      melon-modifier: 2
      pumpkin-modifier: 2
      sapling-modifier: 2
      beetroot-modifier: 2
      carrot-modifier: 2
      potato-modifier: 2
      wheat-modifier: 2
      netherwart-modifier: 2
    entity-activation-range:
      animals: 16
      monsters: 24
      raiders: 48
      misc: 8
    entity-tracking-range:
      player: 48
      animals: 32
      monsters: 32
      misc: 16
    ticks-per:
      hopper-transfer: 16                 # воронки медленнее, но меньше лагов
      hopper-check: 16
      hopper-amount: 1

5.3. server.properties

Увеличьте view-distance не более 6–8, а также:

network-compression-threshold=256
max-players=60
spawn-radius=0

5.4. bukkit.yml (опционально)

settings:
  chunks-per-tick: 650
  max-tick-time:
    entity: 40
    tile: 40
  spawn-limits:
    monsters: 30
    animals: 8
    water-animals: 6
    water-ambient: 5
    water-underground-creature: 5
    axolotls: 3
    ambient: 1
  ticks-per:
    animal-spawns: 600
    monster-spawns: 200

Шаг 6: Запуск и мониторинг

Запустите сервер через screen (удобно для долгих сессий):

screen -S minecraft ./start.sh

Отключиться от screen: Ctrl+A, D. Вернуться: screen -r minecraft.

Важно: В панели proxify.cloud вы можете отслеживать потребление CPU и ОЗУ в реальном времени, а также настраивать автоматический перезапуск VM при падении. Рекомендуется также настроить файрвол через панель – разрешить только порт 25565 (или другой, заданный в server.properties).

Для автоматического перезапуска сервера при краше можно использовать cron или supervisor. Пример для cron (каждые 5 минут проверяем процесс):

*/5 * * * * screen -list | grep -q minecraft || screen -dmS minecraft /home/minecraft/start.sh

Возмож