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:
- Paper - najlepsza optymalizacja, kompatybilny ze Spigot
- Purpur - Paper + dodatkowe funkcje
- Spigot - dobry, ale wolniejszy niż Paper
- 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:
- Zainstaluj plugin Chunky
- Komenda:
/chunky radius 5000(5000 bloków) - Komenda:
/chunky start - 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:
- Użyj Paper zamiast Spigot/Vanilla
- Zmniejsz view-distance do 6
- Zoptymalizuj pliki konfiguracyjne
- Użyj Aikar's flags dla Java
- Pregeneruj świat
Potrzebujesz wydajnego hostingu? Sprawdź nasze pakiety z procesorami najnowszej generacji i dyskami NVMe!