Как уменьшить лаги сервера Minecraft
1. Подготовка и диагностика через панель proxify.cloud
- Войдите в панель proxify.cloud и выберите ваш выделенный сервер.
- Откройте вкладку Console (консоль Proxmox) или подключитесь по SSH:
ssh root@<IP_ВАШЕГО_СЕРВЕРА> - Проверьте текущую нагрузку перед изменениями:
htop # или top -bn1 | head -20 - Определите PID процесса Java (Minecraft):
pgrep -fl java # Пример вывода: 1234 java -Xms4G -Xmx4G -jar paper.jar - Запишите PID для дальнейшего анализа (например,
1234).
2. Оптимизация JVM-флагов (файл запуска)
- Перейдите в директорию сервера (стандартный путь на proxify.cloud):
cd /opt/minecraft/server # или cd /home/minecraft/server - Откройте скрипт запуска (обычно
start.shилиrun.sh):nano start.sh - Замените строку запуска на оптимизированную для Paper/Spigot/Purpur (Java 17/21):
#!/bin/bash java -Xms4G -Xmx4G \ -XX:+UseG1GC \ -XX:+ParallelRefProcEnabled \ -XX:MaxGCPauseMillis=200 \ -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 \ -Dusing.aikars.flags=https://mcflags.emc.gs \ -Daikars.new.flags=true \ -jar paper.jar --nogui-Xms4G -Xmx4G: задайте равные значения (75-80% от RAM сервера). На выделенном сервере proxify.cloud с 32 ГБ RAM ставьте-Xms24G -Xmx24G.--nogui: отключает графический интерфейс, экономит ресурсы.
- Сделайте скрипт исполняемым и перезапустите:
chmod +x start.sh ./start.sh
3. Настройка paper-global.yml (Paper/Purpur)
- Остановите сервер (
stopв консоли). - Откройте конфиг:
nano /opt/minecraft/server/paper-global.yml - Примените следующие критичные параметры (раскомментируйте или добавьте):
# Уменьшаем обработку сущностей в неактивных чанках entity-per-chunk-save-limit: experience_orb: 10 item: 20 arrow: 20 # Оптимизация поиска путей мобов max-entity-collisions: 2 fix-items-merging-through-walls: true # Отключаем лишние проверки disable-chest-cat-detection: true disable-end-credits: true disable-player-crits: false # true для PvP серверов # Хранение данных use-faster-eigencraft-redstone: true armor-stands-tick: false armor-stands-do-collision-entity-lookups: false # Чанки delay-chunk-unloads-by: 10s prevent-moving-into-unloaded-chunks: true - Сохраните (
Ctrl+O,Enter) и выйдите (Ctrl+X).
4. Настройка spigot.yml (Spigot/Paper/Purpur)
- Откройте файл:
nano /opt/minecraft/server/spigot.yml - Измените секцию
settings:settings: save-user-cache-on-stop-only: true entity-tracking-range: players: 48 animals: 48 monsters: 48 misc: 32 other: 64 # Уменьшаем частоту тиков для далекого контента tick-inactive: animals: true monsters: true villagers: true nerf-spawner-mobs: true mob-spawn-range: 4 - В секции
commandsотключите табы для тяжелых команд (опционально):commands: tab-complete: 0
5. Настройка bukkit.yml
- Откройте:
nano /opt/minecraft/server/bukkit.yml - Оптимизируйте спавн и лимиты:
spawn-limits: monsters: 50 # было 70 animals: 8 # было 10 water-animals: 3 # было 5 water-ambient: 1 # было 20 axolotls: 3 ambient: 1 chunk-gc: period-in-ticks: 400 ticks-per: animal-spawns: 400 monster-spawns: 1 water-spawns: 400 water-ambient-spawns: 400 axolotl-spawns: 400 ambient-spawns: 400
6. Настройка server.properties
- Откройте:
nano /opt/minecraft/server/server.properties - Ключевые параметры:
view-distance=6 # 4-6 для выживания, 8+ только для мини-игр simulation-distance=5 # Должно быть <= view-distance max-tick-time=60000 # Предотвращает краш при лаге (watchdog) max-chained-neighbor-updates=1000000 # Фикс редукт-лагов network-compression-threshold=256 use-native-transport=true # Важно для Linux (epoll) sync-chunk-writes=true region-file-compression=deflate - Если сервер Paper/Purpur, добавьте в конец файла (Paper игнорирует неизвестные, но читает свои):
paper.use-faster-eigencraft-redstone=true paper.armor-stands-tick=false
7. Установка и настройка плагинов для производительности
Выполните в консоли сервера (или через SFTP в папку plugins):
Spark (профилировщик):
cd /opt/minecraft/server/plugins wget https://ci.lucko.me/job/spark/lastSuccessfulBuild/artifact/spark-bukkit/target/spark-*-bukkit.jar -O spark.jarИспользование:
/spark profiler --timeout 30в игре или консоли.EntityTrackerFixer (фикс трекинга сущностей):
wget https://github.com/Techcable/EntityTrackerFixer/releases/latest/download/EntityTrackerFixer.jarFarmLimiter / StackMob (лимиты ферм/стакинг мобов) — выберите один:
# FarmLimiter (конфиг в plugins/FarmLimiter/config.yml) wget https://ci.codemc.io/job/Redempt/job/FarmLimiter/lastSuccessfulBuild/artifact/build/libs/FarmLimiter-*.jar -O FarmLimiter.jarClearLagg (очистка предметов/сущностей) — настройте мягко:
wget https://github.com/CreativeMD/ClearLag/releases/latest/download/ClearLag.jarКонфиг
plugins/ClearLag/config.yml:auto-clear: enabled: true interval: 300 # 5 минут clear-entities: true clear-items: true clear-arrows: true
8. Настройка ОС Ubuntu (хост-машина proxify.cloud)
Выполните в консоли Proxmox (Shell узла) или по SSH к Ubuntu:
Отключите swap (если RAM хватает) или настройте
vm.swappiness:echo 'vm.swappiness=1' >> /etc/sysctl.conf echo 'vm.vfs_cache_pressure=50' >> /etc/sysctl.conf sysctl -pНастройте CPU Governor на Performance:
apt update && apt install -y cpufrequtils echo 'GOVERNOR="performance"' > /etc/default/cpufrequtils systemctl restart cpufrequtils # Проверка: cpufreq-info | grep "policy"Huge Pages (Transparent Huge Pages — отключить для Java):
echo never > /sys/kernel/mm/transparent_hugepage/enabled echo never > /sys/kernel/mm/transparent_hugepage/defrag # Чтобы сохранить после перезагрузки: cat <<EOF > /etc/systemd/system/disable-thp.service [Unit] Description=Disable Transparent Huge Pages DefaultDependencies=no After=local-fs.target [Service] Type=oneshot ExecStart=/bin/sh -c 'echo never > /sys/kernel/mm/transparent_hugepage/enabled && echo never > /sys/kernel/mm/transparent_hugepage/defrag' [Install] WantedBy=multi-user.target EOF systemctl enable disable-thp.service systemctl start disable-thp.serviceЛимиты файлов для пользователя minecraft:
cat <<EOF >> /etc/security/limits.conf minecraft soft nofile 1000000 minecraft hard nofile 1000000 minecraft soft nproc 1000000 minecraft hard nproc 1000000 EOF
9. Мониторинг и автоматический рестарт (Systemd)
Создайте сервис для автозапуска и рестарта при краше:
- Создайте файл юнита:
nano /etc/systemd/system/minecraft.service - Содержимое (пути под свои):
[Unit] Description=Minecraft Server (Paper) After=network.target [Service] WorkingDirectory=/opt/minecraft/server User=minecraft Group=minecraft # RestartSec=10 задержка перед рестартом Restart=on-failure RestartSec=10 # Ограничение памяти (CGroup) — опционально, если нужно жесткое ограничение # MemoryMax=26G ExecStart=/opt/minecraft/server/start.sh ExecStop=/bin/bash -c 'echo "stop" | /usr
Комментарии (0)