#
Optymalizacja serwera
Ten poradnik opisuje bezpieczną optymalizację, która znacząco zmniejsza zużycie CPU bez wpływu na mechaniki gry:
- farmy działają
- redstone działa
- villagerzy działają
- hoppery i sortownie działają
- spawner farmy działają
- gracze nie odczują żadnych zmian w gameplayu
Testowane na Paper / Purpur 1.21.5 + Java 21
#
Źródło poradnika
Ten poradnik jest uproszczoną i „bezpieczną” wersją bardzo rozbudowanego opracowania:
https://github.com/YouHaveTrouble/minecraft-optimization/
Jeśli potrzebujesz bardziej zaawansowanego tuningu lub korzystasz z innej wersji Minecrafta, możesz sprawdzić dedykowane wersje oryginalnego poradnika:
- 1.18 - https://github.com/YouHaveTrouble/minecraft-optimization/tree/1.18
- 1.19 - https://github.com/YouHaveTrouble/minecraft-optimization/tree/1.19
- 1.20 - https://github.com/YouHaveTrouble/minecraft-optimization/tree/1.20
- 1.21 - https://github.com/YouHaveTrouble/minecraft-optimization/tree/1.21
#
Wymagania
- Paper, Purpur lub dowolny fork oparty na Paper
- Java 21
- Nie używaj Spigot/CraftBukkit
#
1. server.properties - absolutna podstawa
Edytuj plik server.properties:
sync-chunk-writes=false
simulation-distance=4
view-distance=7
network-compression-threshold=256
Dlaczego:
#
2. paper-world - największy zysk wydajności
Plik: config/paper-world-defaults.yml (lub per świat)
#
Opóźnienie wyładowywania chunków
delay-chunk-unloads-by: 10s
#
Blokada wchodzenia w niezaładowane chunki
prevent-moving-into-unloaded-chunks: true
#
Szybszy redstone (bez zmiany mechaniki)
redstone-implementation: ALTERNATE_CURRENT
#
Szybsze eksplozje
optimize-explosions: true
#
Mapy skarbów (częsta przyczyna freezów)
treasure-maps:
enabled: false
find-already-discovered:
loot-tables: true
villager-trade: true
#
Anti-Xray
anti-xray:
enabled: true
#
Rzadsze ticki trawy
tick-rates:
grass-spread: 4
#
Strzały szybciej znikają
non-player-arrow-despawn-rate: 20
creative-arrow-despawn-rate: 20
#
3. spigot.yml - redukcja ilości encji
#
Łączenie itemów i expa
merge-radius:
item: 3.5
exp: 4.0
#
Zasięg śledzenia encji
entity-tracking-range:
players: 48
animals: 48
monsters: 48
misc: 32
other: 64
#
Aktywacja encji tylko blisko gracza
entity-activation-range:
animals: 16
monsters: 24
raiders: 48
misc: 8
water: 8
villagers: 16
flying-monsters: 48
#
4. bukkit.yml + Paper - limity mobów
#
bukkit.yml
spawn-limits:
monsters: 20
animals: 5
water-animals: 2
ambient: 1
#
paper-world
per-player-mob-spawns: true
#
5. Map pregeneration (pregen)
Obecnie, dzięki optymalizacjom generowania chunków w Paper, pregen nie jest wymagany na nowoczesnych CPU.
Główne zastosowanie pregenu:
- mapy Dynmap / Pl3xMap
- bardzo słabe, jednowątkowe CPU
Jeśli chcesz wykonać pregen:
- użyj pluginu Chunky
- ustaw wcześniej world border
- pamiętaj, że overworld, nether i end mają osobne bordery
- nether jest 8× mniejszy od overworlda
Ustaw także vanilla world border:
/worldborder set [średnica]
Ogranicza to m.in. zakres wyszukiwania map skarbów, które potrafią powodować lagi.
#
6. „Too good to be true” pluginy (unikać)
#
Pluginy usuwające itemy z ziemi
Niepotrzebne. merge-radius i alt-item-despawn-rate robią to lepiej i taniej wydajnościowo.
#
Mob stacker pluginy
Stackowanie naturalnych mobów powoduje WIĘKSZY lag niż ich brak. Jedyny sensowny przypadek to farmy spawnerów na serwerach z ogromną ilością spawnerów.
#
Pluginy włączające/wyłączające inne pluginy
Ekstremalnie niebezpieczne. Powodują błędy w śledzeniu danych i dependency.
Komenda /reload ma dokładnie te same problemy.
#
7. Co laguje? - mierzenie wydajności
#
/mspt (Paper)
Jeśli pierwsze dwie wartości są poniżej 50 - serwer nie laguje.
Trzecia wartość powyżej 50 oznacza pojedynczy wolniejszy tick - to normalne.
#
Spark
Plugin do profilowania CPU i pamięci. Pozwala dokładnie znaleźć przyczynę lagów i spike’ów.
https://spark.lucko.me/docs/guides/Finding-lag-spikes
#
8. Flagi Java
Użytkownik nie ma możliwości samodzielnej zmiany flag startowych.
Jeśli potrzebujesz optymalizacyjnych flag JVM, administrator może je dodać na życzenie.
W tym celu otwórz ticket na naszym serwerze Discord z prośbą o dodanie flag optymalizacyjnych.
Link do Discorda: https://discord.com/invite/S6Cb3FuUZJ