Jak zoptymalizować serwer Minecraft? Poradnik zwiększania wydajności

Dlaczego serwer Minecraft laguje?

Lagi na serwerze Minecraft to najczęstszy problem administratorów. Zanim przejdziemy do optymalizacji, zrozummy co powoduje spadki wydajności:

  • Za mało RAM - serwer nie ma wystarczającej pamięci
  • Słaby procesor - Minecraft jest single-threaded
  • Za dużo mobów/entity - tysiące mobów obciążają serwer
  • Źle skonfigurowane pluginy - niektóre pluginy są bardzo wymagające
  • Duży view-distance - renderowanie zbyt wielu chunków
  • Brak optymalizacji - domyślne ustawienia nie są zoptymalizowane

Jak sprawdzić wydajność serwera?

Przed optymalizacją sprawdź aktualne TPS (Ticks Per Second):

  • Komenda: /tps (wymaga pluginu lub Paper)
  • 20.0 TPS = idealnie, brak lagów
  • 18-19 TPS = lekkie lagi
  • 15-17 TPS = zauważalne lagi
  • Poniżej 15 TPS = poważne problemy

Użyj też pluginu Spark do profilowania - pokaże co dokładnie powoduje lagi.

Krok 1: Wybór odpowiedniego oprogramowania serwera

Nie wszystkie silniki serwerów są równe. Oto ranking wydajności:

  1. Paper - najlepsza optymalizacja, kompatybilny ze Spigot
  2. Purpur - Paper + dodatkowe funkcje
  3. Spigot - dobry, ale wolniejszy niż Paper
  4. Vanilla - najwolniejszy, brak optymalizacji

Rekomendacja: Użyj Paper lub Purpur dla najlepszej wydajności.

Krok 2: Optymalizacja server.properties

Edytuj plik server.properties i zmień te ustawienia:

# Zmniejsz view-distance (domyślnie 10)
view-distance=6

# Zmniejsz simulation-distance (Paper/1.18+)
simulation-distance=4

# Zwiększ network-compression-threshold
network-compression-threshold=512

# Wyłącz sync-chunk-writes (Paper)
sync-chunk-writes=false

view-distance to najważniejsze ustawienie - zmniejszenie z 10 do 6 może zwiększyć wydajność o 40%!

Krok 3: Optymalizacja bukkit.yml

Edytuj bukkit.yml:

spawn-limits:
  monsters: 50  # domyślnie 70
  animals: 8    # domyślnie 10
  water-animals: 3  # domyślnie 5
  water-ambient: 2  # domyślnie 20
  ambient: 1    # domyślnie 15

chunk-gc:
  period-in-ticks: 400  # domyślnie 600

ticks-per:
  animal-spawns: 400  # domyślnie 400
  monster-spawns: 5   # domyślnie 1
  water-spawns: 11    # domyślnie 1
  water-ambient-spawns: 21  # domyślnie 1
  ambient-spawns: 31  # domyślnie 1

Krok 4: Optymalizacja spigot.yml

Edytuj spigot.yml:

world-settings:
  default:
    # Zmniejsz mob-spawn-range
    mob-spawn-range: 4  # domyślnie 8
    
    # Zwiększ entity-activation-range
    entity-activation-range:
      animals: 16  # domyślnie 32
      monsters: 24  # domyślnie 32
      raiders: 48
      misc: 8  # domyślnie 16
    
    # Zmniejsz tick-inactive-villagers
    tick-inactive-villagers: false
    
    # Optymalizuj merge-radius
    merge-radius:
      item: 3.5
      exp: 4.0
    
    # Zwiększ growth delays
    growth:
      cactus-modifier: 150  # domyślnie 100
      cane-modifier: 150
      melon-modifier: 150
      mushroom-modifier: 150
      pumpkin-modifier: 150
      sapling-modifier: 150
      beetroot-modifier: 150
      carrot-modifier: 150
      potato-modifier: 150
      wheat-modifier: 150

Krok 5: Optymalizacja paper.yml (Paper/Purpur)

Edytuj paper.yml lub paper-world-defaults.yml (1.19+):

# Optymalizacja chunków
max-auto-save-chunks-per-tick: 8  # domyślnie 24

# Optymalizacja redstone
redstone-implementation: ALTERNATE  # szybszy redstone

# Optymalizacja mobów
despawn-ranges:
  monster:
    soft: 28  # domyślnie 32
    hard: 96  # domyślnie 128

# Optymalizacja hopper
hopper:
  disable-move-event: true  # wyłącz jeśli nie używasz pluginów z hopperami

# Optymalizacja entity
per-player-mob-spawns: true  # lepsze spawny

# Optymalizacja map
treasure-maps-find-already-discovered: true

Krok 6: Argumenty JVM (Java)

Użyj zoptymalizowanych argumentów startowych Java:

Dla 4-8GB RAM (Aikar's flags):

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 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true -jar server.jar nogui

Dla 10GB+ RAM:

java -Xms10G -Xmx10G -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1NewSizePercent=40 -XX:G1MaxNewSizePercent=50 -XX:G1HeapRegionSize=16M -XX:G1ReservePercent=15 -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=20 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true -jar server.jar nogui

Krok 7: Pluginy optymalizacyjne

Zainstaluj te pluginy dla lepszej wydajności:

  • ClearLag - usuwa itemy i moby
  • FarmControl - limituje farmy mobów
  • Spark - profilowanie wydajności
  • ChunkMaster - pregeneracja świata

Krok 8: Pregeneracja świata

Generowanie nowych chunków podczas gry powoduje lagi. Pregeneruj świat przed otwarciem serwera:

  1. Zainstaluj plugin Chunky
  2. Komenda: /chunky radius 5000 (5000 bloków)
  3. Komenda: /chunky start
  4. Poczekaj kilka godzin

Krok 9: Optymalizacja pluginów

Niektóre pluginy są bardzo wymagające:

  • Usuń niepotrzebne pluginy - każdy plugin obciąża serwer
  • Wyłącz niepotrzebne funkcje - w config.yml pluginów
  • Użyj lżejszych alternatyw - np. TAB zamiast FeatherBoard
  • Sprawdź Spark - pokaże które pluginy lagują

Krok 10: Monitoring i maintenance

Regularne utrzymanie serwera:

  • Restart co 24h - czyści pamięć
  • Aktualizuj Paper - nowe wersje są szybsze
  • Monitoruj TPS - używaj /tps lub Spark
  • Czyść stare chunki - plugin WorldBorder
  • Backup regularnie - ale nie podczas peak hours

Checklist optymalizacji

Użyj tej checklisty:

  • ☐ Zmieniono na Paper/Purpur
  • ☐ view-distance = 6
  • ☐ simulation-distance = 4
  • ☐ Zoptymalizowano bukkit.yml
  • ☐ Zoptymalizowano spigot.yml
  • ☐ Zoptymalizowano paper.yml
  • ☐ Użyto Aikar's flags
  • ☐ Zainstalowano ClearLag
  • ☐ Pregenerowano świat
  • ☐ Usunięto niepotrzebne pluginy

Podsumowanie

Optymalizacja serwera Minecraft to proces, który może zwiększyć wydajność nawet o 200%. Najważniejsze kroki to:

  1. Użyj Paper zamiast Spigot/Vanilla
  2. Zmniejsz view-distance do 6
  3. Zoptymalizuj pliki konfiguracyjne
  4. Użyj Aikar's flags dla Java
  5. Pregeneruj świat

Potrzebujesz wydajnego hostingu? Sprawdź nasze pakiety z procesorami najnowszej generacji i dyskami NVMe!

🚀 Gotowy na własny serwer Minecraft?

Serwery od 10.99 zł/miesiąc • Darmowy okres próbny • Aktywacja w 60 sekund

✨ Użyj kodu BLACKFRIDAY35 i otrzymaj 35% zniżki na pierwszy miesiąc!

Gotowy na własny serwer Minecraft?

Sprawdź nasze pakiety hostingu i uruchom serwer w 5 minut!

Zobacz cennik