Serwer Minecraft oblicza świat 20 razy na sekundę: to właśnie TPS (ticki na sekundę). Jeśli nie nadąża, TPS spadają poniżej 20 i wszystko działa w zwolnionym tempie: bloki dłużej się niszczą, moby poruszają się skokami, farmy przestają działać. To lag serwera, który nie jest tym samym co ping (Twoje połączenie).
1. Zmierz, zanim cokolwiek zmienisz
Nowsze wersje Paper mają wbudowany spark (w starszych zainstaluj go jako plugin):
/spark tps: TPS i MSPT (liczba milisekund, jaką zajmuje każdy tick). Poniżej 50 ms serwer ma spory zapas; gdy MSPT przekracza 50, TPS zaczynają spadać./spark profiler start, a po kilku minutach gry z graczami na serwerze/spark profiler stop: dostaniesz link do raportu, który pokazuje, co pochłania czas (plugin, farma, encje...).
Jeśli w konsoli często widzisz Can't keep up! Is the server overloaded?, serwer nie nadąża. Przy uruchamianiu to normalne; jeśli dzieje się to stale, czytaj dalej i sprawdź też zużycie zasobów Twojego serwera VPS.
2. Używaj Paper, a nie oficjalnego serwera
Paper (lub jego odmiany, np. Purpur) rozwiązuje wiele problemów z wydajnością serwera Mojang bez zmieniania rozgrywki. Jeśli grasz z modami (Fabric, Forge, NeoForge), Paper się nie nada; w Fabric wydajność znacznie poprawia mod Lithium.
3. Zalecane polecenie startowe
Dokumentacja Paper zaleca tak zwane flagi Aikara, które dostrajają sposób zwalniania pamięci przez Javę, aby uniknąć zacięć. Dla serwera VPS z 8 GB i Linuksem (6,5 GB dla Minecrafta):
java -Xms6500M -Xmx6500M -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 paper.jar --nogui
Zmień tylko dwie pierwsze wartości zgodnie z ilością pamięci (jak ją obliczyć). Jeśli zamierzasz przydzielić więcej niż 12 GB, dokumentacja Paper zaleca zmianę niektórych wartości: skorzystaj z jej generatora poleceń startowych.
Więcej RAM to nie większa szybkość. Minecraft wykonuje prawie całą pracę na jednym rdzeniu procesora. Gdy serwer ma już tyle pamięci, ile potrzebuje, dokładanie kolejnej nie podnosi TPS.
4. Zmniejsz zasięgi
W pliku server.properties:
simulation-distance: jak daleko wokół każdego gracza świat „działa” (moby, uprawy, redstone). To najbardziej obciążające ustawienie: wartość od 6 do 8 sprawdza się prawie zawsze.view-distance: jak daleko widać. Wartość od 8 do 10 to dobry kompromis.
5. Wygeneruj świat z wyprzedzeniem
Generowanie nowego terenu podczas eksploracji to jedno z najcięższych zadań, zwłaszcza gdy gracze latają na elytrach. Pluginem Chunky wygenerujesz go z wyprzedzeniem, najlepiej wtedy, gdy nikogo nie ma na serwerze:
/worldborder set 10000
/chunky radius 5000
/chunky start
Granica świata zapobiega generowaniu terenu poza wcześniej wygenerowanym obszarem.
6. Co najczęściej powoduje lagi
- Za dużo encji: ogromne farmy, stłoczone zwierzęta, przedmioty leżące na ziemi.
- Zapętlony redstone: zegary, które nigdy się nie zatrzymują.
- Ciężkie lub źle napisane pluginy: raport spark pokaże, który.
- Niewygenerowany wcześniej świat, który eksploruje jednocześnie wielu graczy.
Jeśli mimo to procesor serwera VPS nadal pracuje na 100% przy graczach na serwerze, serwer stał się za mały: ulepsz plan bez żadnej migracji.