15%

Zaoszczędź 15% na wszystkich usługach hostingowych

Sprawdź swoje umiejętności i zdobądź Rabat na dowolny plan hostingowy

Użyj kodu:

Skills
Rozpocznij
01.11.2024

Optymalizacja serwera Minecraft: Kompletny przewodnik 2025 do zmniejszenia opóźnień i poprawy wydajności

Uruchamianie serwera Minecraft, który zapewnia płynną, wolną od opóźnień rozgrywkę, to zarówno sztuka, jak i nauka. Niezależnie od tego, czy hostujesz mały świat przetrwania dla przyjaciół, czy zarządzasz dużym publicznym serwerem z dziesiątkami jednoczesnych graczy, optymalizacja wydajności to różnica między kwitnącą społecznością a frustrującym doświadczeniem. Ten kompleksowy przewodnik przeprowadzi Cię przez każdą warstwę optymalizacji serwera Minecraft — od wyboru sprzętu i dostrajania JVM po zarządzanie wtyczkami i monitorowanie w czasie rzeczywistym — abyś mógł maksymalnie wykorzystać swoje środowisko hostingowe w 2025 roku.

Dlaczego optymalizacja serwera Minecraft ma znaczenie

Serwer Java Edition Minecraft jest notoryczne zasobożerny. Gra działa na jednowątkowej pętli tiku, co oznacza, że nawet przy potężnym wielordzeniowym CPU, słaba konfiguracja może spowodować spadki szybkości tiku, opóźnienia ładowania chunków i lag jednostek. Gdy liczba graczy rośnie lub świat staje się bardziej złożony dzięki modom i wtyczkom, problemy te szybko się nawarstwiają.

Optymalizacja to nie jednorazowe zadanie — to ciągły proces dostrajania, monitorowania i iteracji. Dobra wiadomość jest taka, że przy odpowiednim oprogramowaniu serwera, sprzęcie i konfiguracji, możesz obsługiwać znacznie więcej graczy przy znacznie mniejszym lag niż domyślna konfiguracja pozwala.

1. Wybór odpowiedniego środowiska hostingowego

Zanim dotkniesz pojedynczego pliku konfiguracyjnego, musisz upewnić się, że Twój serwer działa na sprzęcie zdolnym do spełnienia wymagań Minecraft. Hosting Minecraft na niedostatecznie zasilonych zasobach współdzielonych to jedna z najczęstszych przyczyn trwałego lag.

CPU: Szybkość zegara ponad liczbę rdzeni

Główna pętla gry Minecraft jest jednowątkowa, co oznacza, że surowa szybkość zegara ma większe znaczenie niż liczba rdzeni. Procesor działający na 4,5 GHz będzie działać lepiej niż 16-rdzeniowy serwer działający na 2,8 GHz dla większości obciążeń Minecraft. Wybierając plan hostingowy, priorytetyzuj wysoką wydajność pojedynczego rdzenia.

RAM: Przydzielaj hojnie, ale nie nadmiernie

Alokacja RAM to jeden z najbardziej niezrozumianych aspektów zarządzania serwerem Minecraft. Za mało powoduje stałe pauzy zbierania śmieci; zbyt wiele może paradoksalnie zwiększyć czas pauzy GC. Użyj tych wytycznych jako punktu wyjścia:

Liczba graczyZalecana RAM
1–10 graczy2–4 GB
10–30 graczy4–8 GB
30–60 graczy8–12 GB
60+ graczy / ciężkie mody12–16 GB+

Pamiętaj, że te liczby zakładają rozsądnie zoptymalizowany serwer. Serwer Forge lub Fabric z dużą ilością modów może wymagać znacznie więcej RAM na każdym poziomie.

Magazyn: NVMe SSD jest niezbędny

Minecraft stale czyta i zapisuje dane chunków na dysk. Na tradycyjnym HDD tworzy to poważne wąskie gardła I/O, szczególnie podczas eksploracji świata lub gdy wielu graczy jest aktywnych jednocześnie. NVMe SSD dramatycznie zmniejsza czasy ładowania chunków i eliminuje większość skoków lag związanych z dyskiem.

Do poważnego hostingu Minecraft, Hosting VPS od AlexHost zapewnia magazyn NVMe SSD, procesory o wysokiej częstotliwości i pełny dostęp root — dając Ci pełną kontrolę nad środowiskiem serwera bez narzutu hostingu współdzielonego.

Jeśli uruchamiasz duży publiczny serwer lub sieć z dużą ilością modów, rozważ uaktualnienie do Serwerów dedykowanych w celu uzyskania gwarantowanych zasobów, maksymalnej wydajności pojedynczego rdzenia i ochrony DDoS na poziomie przedsiębiorstwa, która utrzymuje Twój serwer online podczas ataków.

2. Wybór odpowiedniego oprogramowania serwera

Standardowy plik JAR serwera Minecraft dystrybuowany przez Mojang nie jest zoptymalizowany pod kątem wydajności. Przejście na oprogramowanie serwera opracowane przez społeczność to jedna z pojedynczych zmian o największym wpływie, którą możesz wprowadzić.

PaperMC (Rekomendowany)

PaperMC to fork Spigota, który zawiera setki poprawek wydajności, asynchroniczne ładowanie chunków i bogatą konfigurację, która daje administratorom precyzyjną kontrolę nad zachowaniem serwera. To najszerzej rekomendowane oprogramowanie serwera dla wdrożeń skoncentrowanych na wydajności w 2025 roku.

Kluczowe zalety:

  • Asynchroniczne ładowanie i generowanie chunków
  • Konfigurowalne zakresy aktywacji jednostek
  • Zoptymalizowana obróbka redstone i hopperów
  • Pliki konfiguracyjne dla każdego świata
  • Aktywny rozwój z częstymi aktualizacjami wydajności

Spigot

Spigot to poprzednik PaperMC i nadal solidny wybór, szczególnie dla serwerów, które polegają na wtyczkach nie kompatybilnych jeszcze z Paper. Jednak dla większości przypadków użycia PaperMC jest lepszą opcją.

Purpur

Purpur to fork PaperMC, który dodaje jeszcze więcej opcji konfiguracji i eksperymentalnych funkcji wydajności. Jest idealny dla administratorów, którzy chcą maksymalnej kontroli i są zaznajomieni z nieco mniej stabilną bazą kodu.

Fabric + Lithium + Phosphor (Serwery z modami)

W przypadku serwerów z modami działających na Fabric, kombinacja Lithium (ogólny mod optymalizacyjny), Phosphor (optymalizacja silnika oświetlenia) i Starlight (zamiennik silnika oświetlenia) zapewnia znaczne ulepszenia wydajności porównywalne z tym, co PaperMC oferuje dla serwerów zbliżonych do vanilla.

3. Flagi uruchamiania JVM i dostrajanie zbierania śmieci

Ustawienia Java Virtual Machine, które używasz do uruchomienia serwera, mają ogromny wpływ na wydajność, szczególnie na zachowanie zbierania śmieci. Domyślne ustawienia JVM nie są zoptymalizowane dla wzorców użycia pamięci Minecraft.

Rekomendowane flagi JVM (Flagi Aikara)

Najszerzej przyjęte flagi optymalizacyjne dla serwerów Minecraft są znane jako „Flagi Aikara”, opracowane przez głównego dewelopera EmpireMinecraft. Te flagi dostrajają kolektor śmieci G1 dla specyficznych wzorców użycia sterty Minecraft:

java -Xms8G -Xmx8G 
  -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

Ważne uwagi:

  • Ustaw -Xms i -Xmx na tę samą wartość, aby zapobiec narzutowi zmiany rozmiaru sterty
  • Nie przydzielaj więcej niż 75–80% całkowitej RAM systemu do JVM
  • Jeśli przydzielasz więcej niż 12 GB, dostosuj G1HeapRegionSize do 16M

ZGC dla dużych stertach (Java 17+)

W przypadku serwerów działających na Java 17 lub nowszej z bardzo dużymi alokacjami sterty (16 GB+), Z Garbage Collector (ZGC) może oferować niższe czasy pauzy niż G1GC. Jednak wymaga bardziej ostrożnego dostrajania i jest generalnie rekomendowany tylko dla doświadczonych administratorów.

4. Optymalizacja server.properties

Plik server.properties kontroluje fundamentalne zachowanie serwera. To są najistotniejsze ustawienia do dostrojenia:

# Reduce view distance to decrease chunk rendering load
view-distance=6

# Reduce simulation distance (controls entity/redstone processing range)
simulation-distance=4

# Increase max tick time to prevent false watchdog crashes during load spikes
max-tick-time=60000

# Disable spawn protection if not needed (reduces overhead)
spawn-protection=0

# Limit network compression threshold
network-compression-threshold=256

# Enable prevent-proxy-connections if not using a proxy
prevent-proxy-connections=false

Dystans widoku vs. dystans symulacji: W nowoczesnych wersjach Minecraft to są oddzielne ustawienia. view-distance kontroluje, ile chunków jest wysyłanych do klientów do renderowania, podczas gdy simulation-distance kontroluje, ile chunków jest aktywnie przetwarzanych (jednostki, redstone, itp.). Zmniejszenie simulation-distance do 4–6 ma znacznie większy wpływ na wydajność niż zmniejszenie view-distance.

5. Optymalizacja konfiguracji PaperMC

PaperMC udostępnia kilka plików konfiguracyjnych, które zapewniają szczegółową kontrolę nad systemami krytycznymi dla wydajności.

paper-global.yml (wcześniej paper.yml)

chunk-loading:
  autoconfig-send-distance: true
  enable-frustum-priority: false
  global-max-chunk-load-rate: 500
  player-max-chunk-load-rate: 100
  player-max-chunk-send-rate: 75

async-chunks:
  threads: -1  # Auto-detect based on CPU cores

item-despawn-rate: 6000  # Items despawn after 5 minutes (default: 6000)

hopper:
  cooldown-when-full: true
  disable-move-event: false
  ignore-occluding-blocks: true

paper-world-defaults.yml

entities:
  spawning:
    per-player-mob-spawns: true
    
  behavior:
    baby-zombie-movement-modifier: 0.5

environment:
  max-chunk-generate-rate: 8
  
tick-rates:
  mob-spawner: 2
  container-update: 1
  grass-spread: 4
  
alt-item-despawn-rate:
  enabled: true
  items:
    COBBLESTONE: 300
    NETHERRACK: 300
    SAND: 300
    GRAVEL: 300

Spigot.yml

world-settings:
  default:
    entity-activation-range:
      animals: 16
      monsters: 24
      raiders: 48
      misc: 8
      water: 8
      villagers: 16
      flying-monsters: 32
    
    entity-tracking-range:
      players: 48
      animals: 48
      monsters: 48
      misc: 32
      other: 64
    
    merge-radius:
      item: 2.5
      exp: 3.0
    
    mob-spawn-range: 6
    
    tick-inactive-villagers: false
    nerf-spawner-mobs: true

6. Zarządzanie jednostkami i światem

Jednostki to jedna z głównych przyczyn lag serwera. Efektywne zarządzanie nimi jest krytyczne dla utrzymania zdrowotnego TPS (tiki na sekundę).

Limity mobów i limity spawnowania

Zmniejsz globalne limity mobów w bukkit.yml aby zapobiec spirali liczby jednostek:

spawn-limits:
  monsters: 50      # Default: 70
  animals: 8        # Default: 10
  water-animals: 3  # Default: 5
  water-ambient: 10 # Default: 20
  ambient: 1        # Default: 15

Optymalizacja wieśniaków

Wieśniacy są notoryczne drogie pod względem cykli CPU ze względu na ich szukanie ścieżki i AI handlowe. Jeśli Twój serwer ma duże wioski lub zbudowane przez graczy sale handlowe, rozważ:

  • Ustawienie tick-inactive-villagers: false w spigot.yml
  • Użycie wtyczki VillagerOptimiser do zmniejszenia częstotliwości przetwarzania AI wieśniaków
  • Ograniczenie liczby wieśniaków na obszar poprzez zasady serwera lub wtyczki

Optymalizacja Redstone

Złożone urządzenia redstone mogą spowodować znaczne spadki TPS. PaperMC zawiera alternatywne algorytmy redstone:

# In paper-world-defaults.yml
redstone-implementation: ALTERNATE_CURRENT

Implementacja ALTERNATE_CURRENT jest znacznie bardziej wydajna niż vanilla redstone dla złożonych obwodów.

7. Wtyczki zwiększające wydajność

Właściwe wtyczki mogą znacznie zmniejszyć obciążenie serwera. Złe mogą zniszczyć wydajność. Oto najistotniejsze opcje:

Niezbędne wtyczki wydajności

Spark

Złoty standard profilowania serwera Minecraft. Spark zapewnia szczegółowe profilowanie CPU, analizę pamięci i monitorowanie TPS. Powinno być zainstalowane na każdym serwerze.

/spark profiler start
/spark profiler stop
/spark health

ClearLag

Automatycznie usuwa nadmiarowe jednostki (upuszczone przedmioty, pociski, itp.) na konfigurowalnym harmonogramie. Szczególnie przydatne dla serwerów z aktywnymi graczami, którzy generują dużą ilość upuszczonych przedmiotów.

FarmControl

Ogranicza rozmiar i gęstość farm mobów, które są częstym źródłem lag związanego z jednostkami na serwerach przetrwania.

Chunky

Wstępnie generuje chunki w konfigurowalnym promieniu wokół spawnu lub kluczowych lokalizacji. Wstępna generacja eliminuje koszt wydajności generowania chunków na żądanie podczas rozgrywki, która jest jedną z najbardziej wymagających CPU operacji, które serwer Minecraft wykonuje.

/chunky start
/chunky radius 5000
/chunky world world_name

LuckPerms

Najbardziej wydajna dostępna wtyczka uprawnień. Jeśli używasz starszego systemu uprawnień, takiego jak PermissionsEx lub GroupManager, migracja do LuckPerms zmniejszy narzut.

Wtyczki do unikania lub ostrożnego użycia

  • WorldEdit z dużymi zaznaczeniami: Wykonywanie masowych operacji WorldEdit na działającym serwerze może go zamarznąć na sekundy. Użyj trybu asynchronicznego WorldEdit lub wykonaj duże operacje w godzinach o niskim ruchu.
  • Dynmap: Renderowanie mapy w czasie rzeczywistym jest niezwykle wymagające CPU. Skonfiguruj go do renderowania tylko w godzinach o niskim ruchu.
  • Wtyczki anti-cheat: Niektóre rozwiązania anti-cheat mają znaczny narzut wydajności. Testuj ostrożnie i wybieraj lekkie opcje, takie jak Grim zamiast cięższych alternatyw.

8. Sieć i ochrona DDoS

Serwer Minecraft, który jest technicznie dobrze zoptymalizowany, może nadal cierpieć z powodu problemów z łącznością spowodowanych problemami na poziomie sieci. Ataki DDoS skierowane na serwery gier są powszechne, szczególnie dla publicznych serwerów.

Hosting serwera z wbudowaną ochroną DDoS eliminuje potrzebę drogich usług łagodzenia stron trzecich. Hosting VPS i Serwery dedykowane AlexHost zawierają ochronę DDoS jako standard, utrzymując Twój serwer online i responsywny nawet podczas ataków objętościowych.

BungeeCord / Velocity Proxy

Jeśli uruchamiasz sieć wielu serwerów Minecraft, warstwa proxy (BungeeCord lub bardziej nowoczesna, wyższej wydajności Velocity) rozprowadza połączenia graczy na serwery backend, zapobiegając przeciążeniu dowolnej instancji. Velocity w szczególności oferuje znacznie lepszą wydajność i bezpieczeństwo niż BungeeCord.

9. Regularny harmonogram konserwacji

Optymalizacja to nie proces „ustaw i zapomnij”. Ustalenie regularnego harmonogramu konserwacji utrzymuje Twój serwer w najlepszej wydajności w czasie.

Automatyczne restartowanie

Fragmentacja pamięci i akumulacja stanu wtyczki powodują stopniową degradację wydajności w czasie. Zaplanowane restartowanie czyści te problemy. Skonfiguruj automatyczne restartowanie w godzinach o niskim ruchu za pomocą zadania cron lub panelu zarządzania serwerem:

# Cron job for daily 4 AM restart
0 4 * * * /path/to/restart-minecraft.sh

Użyj skryptu restartowania, który wysyła ostrzeżenia w grze przed wyłączeniem:

#!/bin/bash
screen -S minecraft -X stuff "say Server restarting in 5 minutes for maintenance.n"
sleep 240
screen -S minecraft -X stuff "say Server restarting in 1 minute.n"
sleep 60
screen -S minecraft -X stuff "stopn"
sleep 15
# Start server
screen -S minecraft -X stuff "java -Xms8G -Xmx8G [flags] -jar server.jar noguin"

Konserwacja świata

  • Przytnij nieużywane chunki: Użyj narzędzi takich jak Chunky lub MCA Selector do usunięcia chunków, które nie były odwiedzane przez miesiące, zmniejszając rozmiar świata i czasy kopii zapasowych.
  • Regularnie twórz kopie zapasowe: Użyj przyrostowych kopii zapasowych za pomocą narzędzi takich jak DriveBackupV2 do utrzymania kroczących kopii zapasowych bez nadmiernego użycia dysku.
  • Wyczyść stare logi: Logi serwera mogą gromadzić się do gigabajtów w czasie. Wdrażaj rotację dzienników, aby zapobiec problemom z miejscem na dysku.

Utrzymuj oprogramowanie na bieżąco

Przestarzałe oprogramowanie serwera, wtyczki i sam JVM to częste źródła regresji wydajności i luk bezpieczeństwa. Ustal proces przeglądania i stosowania aktualizacji:

  1. Testuj aktualizacje na serwerze przejściowym przed zastosowaniem do produkcji
  2. Przejrzyj dzienniki zmian pod kątem zmian związanych z wydajnością
  3. Monitoruj TPS i użycie pamięci po aktualizacjach, aby wcześnie złapać regresje

10. Monitorowanie wydajności serwera

Nie możesz zoptymalizować tego, czego nie możesz zmierzyć. Kompleksowe monitorowanie to podstawa efektywnego zarządzania wydajnością.

Polecenia monitorowania w grze

Sprawdzenie TPS (PaperMC):

/tps

Zdrowy serwer utrzymuje 20 TPS. Wartości poniżej 18 wskazują na problemy z wydajnością wymagające zbadania.

Użycie pamięci:

/memory

Profilowanie Spark:

/spark profiler start --timeout 60

Po uruchomieniu profilera Spark generuje adres URL raportu, który można udostępniać i pokazuje dokładnie, które operacje zużywają najwięcej czasu CPU.

Monitorowanie na poziomie systemu

Aby uzyskać głębszą widoczność wydajności serwera, użyj narzędzi monitorowania systemu:

htop / top: Użycie CPU i pamięci w czasie rzeczywistym na proces

iostat: Statystyki I/O dysku — przydatne do identyfikacji wąskich gardeł magazynowania

iostat -x 1 10

vmstat: Statystyki pamięci wirtualnej — pomaga zidentyfikować presję pamięci

vmstat 1 10

Netdata lub Prometheus + Grafana: W przypadku serwerów produkcyjnych pełny stos monitorowania z danymi historycznymi i alertami zapewnia bezcenny wgląd w trendy wydajności w czasie.

Kluczowe metryki do śledzenia

MetrykaZdrowy zakresPróg działania
TPS19,5–20,0Poniżej 18,0
Użycie CPUPoniżej 70%Powyżej 85%
Użycie RAMPoniżej 80% przydzielonegoPowyżej 90%
Oczekiwanie I/O dyskuPoniżej 5%Powyżej 15%
Czas pauzy GCPoniżej 100msPowyżej 500ms

11. Zaawansowane techniki optymalizacji

Asynchroniczna generacja świata z wstępną generacją Chunky

Uruchamianie generacji chunków podczas rozgrywki to jedna z najbardziej wymagających operacji, które serwer Minecraft wykonuje. Wstępne wygenerowanie świata przed eksploracyją graczy całkowicie eliminuje ten koszt:

/chunky world world
/chunky radius 10000
/chunky start

To generuje wszystkie chunki w promieniu 10 000 bloków od spawnu. Dla serwera przetrwania obejmuje to zdecydowaną większość obszaru, który gracze będą realistycznie eksplorować i eliminuje lag generowania na żądanie przez całe życie serwera.

Optymalizacja bazy danych dla dużych serwerów

Duże serwery używające backendów MySQL lub MariaDB dla danych graczy, wtyczek ekonomii lub innych systemów powinny upewnić się, że ich baza danych jest prawidłowo zoptymalizowana:

  • Użyj puli połączeń (HikariCP to standard dla wtyczek Minecraft)
  • Indeksuj często wyszukiwane kolumny
  • Uruchamiaj OPTIMIZE TABLE okresowo na tabelach o wysokim zapisie
  • Rozważ użycie dedykowanego serwera bazy danych dla bardzo dużych wdrożeń

Optymalizacja na poziomie proxy

W przypadku sieci wieloserwerowych skonfiguruj Velocity lub BungeeCord za pomocą:

  • HAProxy przed Twoim proxy do równoważenia obciążenia i dodatkowego łagodzenia DDoS
  • TCPShield lub podobne usługi do ochrony na poziomie sieci
  • Właściwe reguły zapory, aby upewnić się, że gracze mogą łączyć się tylko przez proxy, a nie bezpośrednio
15%

Zaoszczędź 15% na wszystkich usługach hostingowych

Sprawdź swoje umiejętności i zdobądź Rabat na dowolny plan hostingowy

Użyj kodu:

Skills
Rozpocznij