Zum Inhalt springen
Aktueller Gutschein:10 % RabattIn der Bestellung einlösen

Leistung eines Minecraft-Servers: Lag, Parameter, Sichtweite, Chunky und spark

So finden Sie heraus, was Ihren Server bremst, und beheben es: TPS und MSPT, Startparameter und Speicher, Sichtweite, Einstellungen von Paper, Vorgenerierung der Welt mit Chunky und Profiling mit spark.

  • Fortgeschrittene
  • ~40 Min.
  • Aktualisiert am 9.10.2026

Ein Server, der „laggt“, hat meist nicht zu wenig Hardware. Häufiger steckt eine konkrete Ursache dahinter: eine zu große Simulationsdistanz, die Generierung von neuem Gelände, eine überfüllte Farm oder ein schlecht geschriebenes Plugin. Wir zeigen, wie Sie Lag messen, seine Ursache finden und beheben – von schnellen Anpassungen über die Einstellungen von Paper bis zum Profiling.

Was Sie brauchen

  • Ein Minecraft-Server bei StormHost (wir empfehlen Paper oder Purpur; Teile dieser Anleitung gelten auch für Fabric und NeoForge)
  • Zugriff auf die Registerkarten Konsole, Servereigenschaften, Startoptionen und Dateien
  • Ein Backup des Servers, bevor Sie die Konfiguration ändern (Anleitung)
  • Etwa 40 Minuten

So erkennen Sie, was laggt#

Ein Minecraft-Server führt das Spiel in Ticks aus. Er sollte 20 davon pro Sekunde schaffen, für einen Tick hat er also 50 Millisekunden. Zwei Werte müssen Sie kennen:

WertWas er bedeutetGutProblem
TPS (Ticks pro Sekunde)Wie viele Ticks der Server tatsächlich pro Sekunde schafft.20Unter 19 bemerken Spieler die Verlangsamung, unter 15 ist das Spiel unangenehm.
MSPT (Millisekunden pro Tick)Wie viele Millisekunden ein Tick dauert.Unter 50 ms, ideal unter 35 msÜber 50 ms kommt der Server nicht hinterher, und die TPS sinken.

MSPT ist der genauere Indikator: Ein Server mit einer MSPT von 45 ms hat noch 20 TPS, aber keinerlei Reserve. Sobald die MSPT 50 ms überschreitet, beginnen die TPS zu sinken.

Die Werte prüfen Sie in der Konsole (Befehle ohne Schrägstrich eingeben):

text
tps
mspt
spark tps
  • tps – durchschnittliche TPS über die letzten 1, 5 und 15 Minuten (Paper, Purpur).
  • mspt – durchschnittliche, kürzeste und längste Tickzeit (Paper, Purpur).
  • spark tps – TPS, MSPT (Minimum, Median, 95. Perzentil, Maximum) und CPU-Auslastung. Funktioniert überall, wo spark installiert ist (Paper hat es eingebaut).

Kommt der Server über längere Zeit nicht hinterher, zeigt die Konsole:

Ausgabetext
Can't keep up! Is the server overloaded? Running 2500ms or 50 ticks behind

Der Server sagt damit, dass er 2,5 Sekunden (50 Ticks) zurückliegt und diese Ticks überspringt. Eine einzelne Meldung beim Start oder während der Generierung von Gelände ist in Ordnung. Wiederholt sie sich alle paar Minuten, machen Sie mit dieser Anleitung weiter.

Lag des Servers oder etwas anderes?#

Was der Spieler siehtUrsacheWo suchen
Blöcke kehren nach dem Abbauen zurück, Mobs frieren ein, alle Spieler haben dasselbe ProblemLag des Servers (niedrige TPS)Diese Anleitung
Niedrige FPS, ruckelndes Bild, andere Spieler haben aber keine ProblemeLeistung des Computers des SpielersGrafikeinstellungen im Spiel, Client-Mods
Der Spieler „springt“ zurück, hoher Ping nur bei ihmVerbindung des SpielersDer Ping des Spielers mit spark ping --player <NICK>
Der Server ist in Ordnung, aber neue Gebiete laden langsamGenerierung von GeländeVorgenerierung mit Chunky

Schnelle Erfolge#

Sortiert von der größten Wirkung zur kleinsten. Die meisten erledigen Sie in weniger als zehn Minuten.

ReihenfolgeSchrittWarum es hilftWo
1Paper oder Purpur statt Vanilla verwendenPaper enthält Hunderte Optimierungen und Fehlerbehebungen, die Vanilla nicht hat.Registerkarte Software, siehe Servertypen
2Die Welt vorgenerieren und ihre Grenze festlegenDie Generierung von neuem Gelände ist das Anspruchsvollste, was ein Server tut.Chunky
3simulation-distance auf 6–⁠8 und view-distance auf 8 senkenWeniger Chunks pro Spieler = weniger Arbeit in jedem Tick.Sicht- und Simulationsdistanz
4Die Ursache mit einem Profiler findenZeigt das konkrete Plugin, die Farm oder das Entity.spark
5Entities und Farmen begrenzenHunderte Tiere in einem Gehege oder eine überfüllte Farm ruinieren die TPS.Einstellungen von Paper
6Die Standard-Startparameter beibehaltenDas Standard-Preset ist auf Ihre Speichergröße abgestimmt.Startparameter
7Server, Plugins und Mods aktualisierenNeue Versionen beheben oft Speicherlecks und langsamen Code.Registerkarten Software und Plugins

Plugins zum „Lag-Entfernen“

Plugins, die wundersame Beschleunigung versprechen (regelmäßiges Löschen von Gegenständen auf dem Boden, „RAM leeren“, erzwungene Garbage Collection), lösen das Problem nicht. Sie löschen Gegenstände der Spieler, verursachen oft Ruckler und verdecken nur die Ursache. Finden Sie die echte Ursache mit spark.

Startparameter und Speicher#

Startparameter (Flags) sind die Parameter, mit denen Java startet. Sie legen die Speichergröße für das Spiel (den Heap), Obergrenzen für Speicher außerhalb des Heaps und das Verhalten des Garbage Collectors fest, der nicht mehr benötigte Daten aus dem Speicher räumt. Im Kundenbereich finden Sie sie in der Registerkarte Startoptionen im Abschnitt Startparameter.

Heap und Obergrenzen berechnet der Kundenbereich selbst anhand der Größe Ihres Tarifs, des Servertyps, der Java-Version und der Anzahl der Plugins oder Mods. Er berechnet sie beim Anlegen des Servers, nach einem Tarifwechsel, nach einem Wechsel von Typ oder Version und vor einem Start aus dem Portal neu, wenn sich seit dem letzten Mal etwas davon geändert hat. Einen Startbefehl, den Sie im Panel von Hand bearbeitet oder als eigenen festgelegt haben, überschreibt er nicht. Hat ein solcher Befehl einen Heap, der für einen kleineren Tarif zu groß ist, starten wir den Server nach dem Tarifwechsel nicht (er würde sofort abstürzen) und senden Ihnen eine E-Mail.

OptionWas sie tutWann verwenden
Preset – Empfohlen (G1)Der Garbage Collector G1 mit Einstellungen nach der Dokumentation von Paper. Standard für alle Servertypen.Die meisten Server.
Preset – Kurze Pausen (ZGC)Ein Garbage Collector mit sehr kurzen Pausen auf Kosten höherer CPU-Last. Nur Java 21 und neuer.Große Server ab 16 GB, wenn spark gc lange Pausen zeigt und die CPU Reserven hat.
Preset – ProxyParameter für Velocity und BungeeCord.Wird nur für Proxy-Server angeboten.
Preset – Ohne TuningNur Heap-Größe und Speicherobergrenzen.Vorübergehend, bei der Fehlersuche, ob die Parameter einen Fehler verursachen.
Eigene ParameterZusätzliche Parameter. Erlaubt sind nur -XX:…, -D…=… und --add-modules=…, höchstens 30. Der Heap lässt sich nicht setzen. Die Obergrenzen für Netzwerkpuffer (-XX:MaxDirectMemorySize), kompilierten Code (-XX:ReservedCodeCacheSize) und geladene Klassen (-XX:MaxMetaspaceSize) schon; der Heap wird dann neu berechnet.Wenn die Anleitung eines Plugins oder Mods eine bestimmte -D-Eigenschaft verlangt oder ein Voice-Chat-Plugin mehr Netzwerkpuffer braucht.

Alle Presets haben dieselben Schutzmechanismen: Obergrenzen für Netzwerkpuffer, kompilierten Code und geladene Klassen, MALLOC_ARENA_MAX=2 (weniger Speicherbereiche des Allokators) und ab Java 17 -XX:TrimNativeHeapInterval (gibt ungenutzten Speicher an das System zurück). Purpur erhält zusätzlich automatisch --add-modules=jdk.incubator.vector (schnellere Berechnungen, die Purpur nutzen kann).

Schaltflächen in diesem Abschnitt:

  • Speichern – die Einstellungen werden beim nächsten Start verwendet.
  • Speichern und neu starten – der Server startet sofort neu. Startet er mit den neuen Parametern nicht, setzt der Kundenbereich sie zurück, und Sie sehen die Meldung Die Parameter sind nicht kompatibel, auf die vorherigen Einstellungen zurückgesetzt.
  • Vorherige wiederherstellen – stellt die letzten funktionierenden Einstellungen wieder her.
  • Empfohlene verwenden – erscheint, wenn der Heap für Ihren Tarif zu groß ist oder der Startbefehl keine Speicherobergrenzen hat. Setzt den empfohlenen Befehl.
  • Jetzt neu berechnen – berechnet die Parameter sofort neu, damit Sie nicht auf den nächsten Start aus dem Portal warten müssen.

Unter Speicheraufteilung sehen Sie, wie viel auf den Heap entfällt und wie viel für alles andere bleibt. Nach einer automatischen Neuberechnung zeigt der Kundenbereich etwa Wir haben den Startbefehl an die neue RAM-Größe angepasst: Heap 8,2 → 9,6 GB.

Betreiben Sie einen Server außerhalb von StormHost? Der Generator für Startskripte erstellt ein Startskript mit derselben Berechnung für Docker, Linux und Windows.

Warum der Heap nicht der ganze RAM ist#

Der Heap (-Xmx) wächst nie über seine eigene Grenze hinaus. Was wächst, ist der Speicher außerhalb des Heaps: Netzwerkpuffer, geladene Klassen von Plugins und Mods, kompilierter Code, Threads und der Allokator des Systems. Am stärksten wachsen die Netzwerkpuffer – ohne Obergrenze können sie die Größe des Heaps erreichen; ein Server mit 6 GB Heap kann so am Ende 12 GB belegen.

Der Container des Servers hat ein hartes Limit, das 5 % über dem Tarif liegt (10 % bei Tarifen bis 4 GB, 15 % bis 2 GB), und keinen Swap. Überschreitet der Prozess das Limit, beendet ihn das System. Die Konsole zeigt Out of memory: true, und im Log des Servers steht überhaupt kein Fehler.

Deshalb hat jeder große Teil außerhalb des Heaps eine Obergrenze, alles zusammen liegt mit Reserve unter der Tarifgröße, und der Heap bekommt den Rest. Stößt ein Teil an seine Obergrenze, schreibt der Server einen Fehler ins Log (OutOfMemoryError: Direct buffer memory oder Metaspace), statt stillschweigend abzustürzen, und dieser Fehler weist auf den Schuldigen hin.

Speicher des TarifsHeap (Paper, 20 Plugins)Heap (Modpack, 200 Mods)Limit des Containers
10 GB7872 MB7040 MB10.752 MB
12 GB9792 MB8896 MB12.902 MB
16 GB13.504 MB12.672 MB17.203 MB
24 GB21.056 MB20.224 MB25.805 MB

Der Heap hat dieselbe Mindest- und Höchstgröße (-Xms = -Xmx) und wird direkt beim Start belegt. Deshalb zeigt der Speichergraph im Panel von Anfang an einen hohen Wert. Das Panel zählt außerdem den Dateicache der Welt mit, den das System bei Bedarf freigibt. Ein Wert nahe am Limit bedeutet für sich allein keinen Absturz.

Die Dokumentation von Paper empfiehlt unabhängig von der Spielerzahl mindestens 6–⁠10 GB Heap und warnt, dass mehr Speicher ab einem gewissen Punkt die Leistung nicht verbessert.

Wann es Zeit für einen größeren Tarif ist

Zeigt spark health den Heap auch nach der Garbage Collection ständig über 90 % (spark gc meldet häufige und lange Pausen) und haben Sie Speicherlecks in Plugins ausgeschlossen, braucht der Server mehr Speicher. Zu einem größeren Tarif wechseln Sie in der Registerkarte Tarif ändern (Anleitung). Die Parameter werden nach dem Upgrade automatisch neu berechnet und gelten ab dem nächsten Start.

Sicht- und Simulationsdistanz#

Die Welt ist in Chunks aufgeteilt (Säulen von 16 × 16 Blöcken). Der Server hält um jeden Spieler Chunks in einem bestimmten Radius geladen:

  • view-distance – wie viele Chunks um den Spieler der Server an das Spiel sendet (was der Spieler sieht). Wirkt sich vor allem auf Speicher und Netzwerk aus.
  • simulation-distance – der Radius, in dem Chunks „leben“: Mobs bewegen sich, Pflanzen wachsen, Redstone und Farmen arbeiten. Wirkt sich vor allem auf die CPU und damit auf die TPS aus.

Die Anzahl der Chunks wächst mit dem Quadrat der Entfernung. Mit view-distance=10 hält der Server um jeden Spieler 441 Chunks, mit 8 nur 289 (ein Drittel weniger). Für die Simulation gilt dasselbe.

Situationview-distancesimulation-distance
Ein kleiner Server mit Freunden, kein Lag1010
Ein öffentliches Survival, 20+ Spieler8–⁠106–⁠8
Der Server laggt, und Sie wissen nicht, warum86
Minispiele, Lobby6–⁠84–⁠6

Sie stellen beides in der Registerkarte Servereigenschaften in der Gruppe Welt ein (alle Einstellungen). Eine Simulationsdistanz unter 5 empfehlen wir nicht – größere Farmen funktionieren dann nicht mehr, weil ein Teil der Farm außerhalb des simulierten Bereichs liegt.

Paper und einzelne Welten

Auf Paper können Sie die Distanzen in spigot.yml auch für jede Welt getrennt einstellen (world-settings › default › view-distance und simulation-distance). Der Wert default bedeutet „server.properties verwenden“.

Einstellungen von Paper#

Paper und Purpur haben eine eigene Konfiguration im Ordner config:

DateiWas sie enthält
config/paper-global.ymlEinstellungen für den ganzen Server (Proxy, Laden von Chunks, Spam-Limits).
config/paper-world-defaults.ymlStandardeinstellungen für alle Welten. Hier stellen Sie die Leistung ein.
world/dimensions/minecraft/<dimension>/paper-world.ymlAbweichungen für eine Dimension (ab Version 26.1; <dimension> ist overworld, the_nether oder the_end). In älteren Versionen eine Datei paper-world.yml im Ordner der Welt, zum Beispiel world_nether/paper-world.yml.

Bearbeiten Sie immer paper-world-defaults.yml. Öffnen Sie die Datei im Editor in der Registerkarte Dateien, suchen Sie den vorhandenen Abschnitt (zum Beispiel chunks:) und ändern Sie den Wert darin. Fügen Sie denselben Abschnitt nicht ein zweites Mal hinzu – bei einem doppelten Schlüssel lädt der Server die Datei entweder nicht oder verwendet nur einen davon, und Ihre Änderung wirkt nicht.

YAML-Regeln

Rücken Sie nur mit Leerzeichen ein (nie mit Tabulatoren), verwenden Sie auf derselben Ebene dieselbe Einrückung und setzen Sie nach dem Doppelpunkt ein Leerzeichen. Erstellen Sie vor dem Bearbeiten ein Backup. Starten Sie den Server nach dem Bearbeiten neu – den Befehl paper reload empfehlen wir nicht, weil manche Werte nur beim Start geladen werden.

Ausgewählte Einstellungen mit dem größten Einfluss auf die Leistung:

EinstellungWas sie tutEmpfohlener WertWann ändern
chunks.prevent-moving-into-unloaded-chunksLässt Spieler nicht in einen Chunk, der noch nicht geladen ist (schneller Elytraflug, Fahrt mit der Lore). Der Server muss Chunks dann nicht mitten im Tick zwangsweise laden.trueStandard false. Schalten Sie es auf Servern mit Elytren und schnellem Reisen ein.
chunks.entity-per-chunk-save-limitWie viele Entities eines bestimmten Typs in einem Chunk gespeichert werden. Schützt vor Chunks, die mit Tausenden Pfeilen oder Erfahrungskugeln überflutet sind.arrow: 16, experience_orb: 16, snowball: 8, ender_pearl: 8, fireball: 8, small_fireball: 8Standard ohne Grenze (-1). Tragen Sie hier keine Tiere oder Mobs ein – der Rest würde beim Speichern verschwinden.
collisions.max-entity-collisionsNach wie vielen Kollisionen ein Entity keine weiteren Kollisionen mehr berechnet.2Standard 8. Ein niedrigerer Wert entlastet Orte, an denen sich viele Mobs drängen, erheblich. Mobs in einer Menge schieben sich dann weniger – funktioniert dadurch eine Farm nicht mehr, erhöhen Sie den Wert wieder.
environment.optimize-explosionsBeschleunigt die Berechnung von Explosionen (TNT, Creeper).trueStandard false. Immer einschalten; das Ergebnis der Explosionen ändert sich nicht.
misc.redstone-implementationWie Redstone berechnet wird: VANILLA, EIGENCRAFT, ALTERNATE_CURRENT.ALTERNATE_CURRENTStandard VANILLA. Die alternative Berechnung entlastet Redstone-Staub erheblich, verändert aber in seltenen Fällen das Verhalten von Schaltungen, die von der Reihenfolge der Aktualisierungen abhängen. Informieren Sie Spieler mit technischen Bauten.
hopper.disable-move-eventSchaltet das Plugin-Ereignis ab, das bei jedem von einem Trichter bewegten Gegenstand ausgelöst wird.falsetrue nur, wenn kein Plugin Trichterbewegungen überwacht (Truhenschutz, Filter). Sonst würden Schutzfunktionen nicht mehr greifen.
tick-rates.mob-spawnerWie oft (in Ticks) Spawner ihre Umgebung prüfen und spawnen.2Standard 1. Der Spawner wird nur jeden zweiten Tick geprüft. Paper zählt seine Verzögerung schneller herunter, er spawnt Mobs also etwa genauso oft. -1 schaltet alle Spawner ab.
tick-rates.grass-spreadWie oft (in Ticks) der Server versucht, Gras auszubreiten.4Standard 1. Gras breitet sich langsamer aus; Spieler bemerken das meist nicht.
entities.spawning.despawn-rangesDie Entfernung vom Spieler, in der Mobs zufällig (soft) oder sofort (hard) despawnen. Vanilla: 32 und 128 Blöcke.Zum Beispiel monster: soft: 30, hard: 72Auf vollen Servern. Ein kleineres hard schafft Platz für neue Mobs näher an den Spielern.
environment.treasure-maps.enabledSchatzkarten von Dorfbewohnern und aus Truhen. Die Suche nach der nächsten Struktur ist sehr anspruchsvoll.truefalse, wenn spark Lag beim Handel mit Kartografen oder beim Öffnen von Truhen zeigt.
entities.armor-stands.tickOb Rüstungsständer ticken (Physik, Schwerkraft).truefalse auf Servern mit Tausenden dekorativer Rüstungsständer. Sie fallen dann nicht, und manche Plugins funktionieren mit ihnen womöglich nicht.

So sehen die Änderungen in der Datei aus (nur die geänderten Teile; die übrigen Zeilen der Datei lassen Sie unverändert):

config/paper-world-defaults.ymlYAML
chunks:
  entity-per-chunk-save-limit:
    arrow: 16
    experience_orb: 16
    snowball: 8
    ender_pearl: 8
  prevent-moving-into-unloaded-chunks: true
collisions:
  max-entity-collisions: 2
entities:
  spawning:
    despawn-ranges:
      monster:
        hard: 72
        soft: 30
environment:
  optimize-explosions: true
misc:
  redstone-implementation: ALTERNATE_CURRENT
tick-rates:
  grass-spread: 4
  mob-spawner: 2

spigot.yml und bukkit.yml#

Paper liest außerdem die älteren Konfigurationsdateien spigot.yml und bukkit.yml im Hauptordner des Servers.

spigot.yml#

Alle Einstellungen stehen im Abschnitt world-settings › default.

EinstellungWas sie tutEmpfohlener WertWann ändern
entity-activation-range.animalsIn welcher Entfernung (Blöcke) von einem Spieler Tiere voll ticken. Weiter entfernt ticken sie nur gelegentlich.16–24Standard 32. Senken Sie den Wert auf Servern mit großen Tiergehegen.
entity-activation-range.monstersDasselbe für Monster.24Standard 32.
entity-activation-range.villagersDasselbe für Dorfbewohner.16Standard 32. Dorfbewohner gehören zu den anspruchsvollsten Entities. Ein zu niedriger Wert verlangsamt Dorfbewohner-Farmen.
entity-activation-range.miscAndere Entities (Gegenstände auf dem Boden, Loren).8–12Standard 16.
entity-activation-range.raidersRäuber (Raider).48Standard 64. Ein zu niedriger Wert macht Überfälle kaputt.
merge-radius.itemBis zu welcher Entfernung (Blöcke) gleiche Gegenstände auf dem Boden verschmelzen.2.5Standard 0.5. Ein größerer Wert = weniger Entities auf dem Boden.
merge-radius.expDasselbe für Erfahrungskugeln. -1 = Verhalten von Vanilla.3.0Standard -1.
nerf-spawner-mobsMobs aus Spawnern haben keine KI (sie bewegen sich nicht und greifen nicht an).trueStandard false. Spart Leistung bei XP-Farmen, Mobs aus Spawnern greifen dann aber nicht an – informieren Sie die Spieler.
ticks-per.hopper-transferNach wie vielen Ticks ein Trichter einen Gegenstand bewegt.8Der Standard ist 8 (Vanilla). Ein höherer Wert verlangsamt alle Trichter – das verändert das Verhalten von Redstone-Taktgebern.

bukkit.yml#

EinstellungWas sie tutEmpfohlener WertWann ändern
spawn-limits.monstersDie maximale Anzahl von Monstern (pro Spieler, wenn in Paper per-player-mob-spawns eingeschaltet ist).50Standard 70. Weniger Monster = weniger Berechnungen.
spawn-limits.animalsDie maximale Anzahl natürlich spawnender Tiere.8Standard 10.
spawn-limits.water-animals, water-ambient, ambientFische, Tintenfische, Fledermäuse.3, 10, 5Standard 5, 20, 15.
ticks-per.monster-spawnsNach wie vielen Ticks der Server versucht, Monster zu spawnen.2Standard 1.
ticks-per.autosaveNach wie vielen Ticks die ganze Welt gespeichert wird (6000 = 5 Minuten).6000Nicht ändern. Paper speichert Chunks laufend.

Die Welt mit Chunky vorgenerieren#

Erreicht ein Spieler einen Ort, an dem noch niemand war, muss der Server das Gelände generieren. Das ist der anspruchsvollste Vorgang überhaupt: Ein einziger Spieler mit Elytren kann die TPS des ganzen Servers drücken. Die Lösung ist, das Gelände im Voraus zu generieren und die Weltgrenze so festzulegen, dass Spieler nicht über das vorbereitete Gebiet hinauskommen.

Das Plugin Chunky generiert Gelände im Hintergrund, schrittweise und pausierbar. Es gibt es für Paper, Purpur und Folia und als Mod für Fabric, Forge und NeoForge.

  1. Installieren Sie Chunky in der Registerkarte Plugins (bei Mods Mods) › Durchsuchen: Suchen Sie nach Chunky und klicken Sie auf Installieren. Starten Sie den Server danach neu (Anleitung zu Plugins).

  2. Legen Sie in der Konsole den Mittelpunkt der Weltgrenze fest:

    text
    worldborder center 0 0
    • worldborder center – legt den Mittelpunkt der Weltgrenze fest.
    • 0 0 – die Koordinaten X und Z des Mittelpunkts. Meist der Mittelpunkt der Welt oder die Koordinaten des Spawns.
  3. Legen Sie die Größe der Grenze fest:

    text
    worldborder set 10000
    • worldborder set – legt die Größe der Grenze fest.
    • 10000 – der Durchmesser in Blöcken. Die Welt wird 10.000 × 10.000 Blöcke groß, also 5000 Blöcke vom Mittelpunkt in jede Richtung.
  4. Übergeben Sie die Grenze an Chunky:

    text
    chunky worldborder

    Chunky übernimmt Mittelpunkt und Radius von der Weltgrenze.

  5. Starten Sie die Generierung:

    text
    chunky start

    Die Konsole zeigt regelmäßig den Fortschritt in Prozent, die Anzahl der generierten Chunks und eine Schätzung der verbleibenden Zeit.

Weitere Befehle:

BefehlWas er tut
chunky pausePausiert die Generierung und speichert den Fortschritt. Praktisch, wenn viele Spieler kommen.
chunky continueSetzt eine pausierte Generierung fort.
chunky cancelBricht die Aufgabe ab. Generierte Chunks bleiben erhalten.
chunky progressGibt den Fortschritt aus (praktisch im Spiel).
chunky silentSchaltet Fortschrittsmeldungen in der Konsole aus oder ein.
chunky start world square 0 0 5000Startet die Generierung ohne Weltgrenze: Welt world, quadratische Form, Mittelpunkt 0 0, Radius 5000 Blöcke.
chunky worldWählt eine Welt. Im Spiel ohne Namen wählt der Befehl die Welt, in der Sie stehen.

Nether und End#

Der Nether ist achtmal kleiner als die Oberwelt (1 Block im Nether = 8 Blöcke in der Oberwelt). Für eine Grenze mit einem Durchmesser von 10.000 Blöcken in der Oberwelt (Radius 5000) genügt im Nether ein Radius von 625 Blöcken. Verbinden Sie sich mit dem Spiel, gehen Sie in den Nether und geben Sie im Chat ein:

text
/chunky world
/chunky center 0 0
/chunky radius 625
/chunky start
  • /chunky world – ohne Namen wählt der Befehl die Welt, in der Sie gerade sind (den Nether).
  • /chunky center 0 0 – der Mittelpunkt der Generierung.
  • /chunky radius 625 – der Radius in Blöcken.
  • /chunky start – startet die Generierung.

Eine Weltgrenze im Nether (/worldborder set 1250, im Nether eingegeben) legen Sie nur auf Paper und Purpur fest, ab Version 1.21.9 auch anderswo – erst ab dieser Version hat jede Dimension eine eigene Grenze. In älteren Versionen von Vanilla, Fabric und NeoForge würde der Befehl auch die Grenze in der Oberwelt ändern.

Das End können Sie kleiner generieren (zum Beispiel mit einem Radius von 2000–⁠3000 Blöcken); Spieler bewegen sich dort hauptsächlich auf den Inseln.

Festplatte und CPU

Eine vorgenerierte Welt belegt Speicherplatz – je größer die Grenze, desto mehr. Beginnen Sie mit einem kleineren Durchmesser (5000–⁠10.000 Blöcke) und behalten Sie den freien Platz in der Registerkarte Dateien oder in der Festplattenanzeige in der Konsole im Blick. Die Generierung lastet die CPU voll aus: Führen Sie sie aus, wenn wenige Spieler auf dem Server sind, oder pausieren Sie sie zwischendurch mit chunky pause.

Nach einem Neustart des Servers setzt sich die Generierung nicht von selbst fort. Machen Sie mit chunky continue weiter (oder setzen Sie continue-on-restart: true in plugins/Chunky/config.yml).

Diagnose mit spark#

spark ist ein Profiler: Während der Server läuft, zeichnet er auf, was der Server tut, und zeigt das Ergebnis als übersichtlichen Baum mit Prozentangaben. Paper hat ihn ab Version 1.21 eingebaut (Purpur ebenfalls); auf Fabric und NeoForge installieren Sie den Mod spark von Modrinth. Auf einem Velocity-Proxy lautet der Befehl sparkv.

Schneller Überblick#

Befehl (in der Konsole)Was er zeigt
spark tpsTPS über die letzten 5 s, 10 s, 1 min, 5 min und 15 min, Tickzeiten und CPU-Auslastung. Färbt die Werte je nach Qualität grün, orange oder rot.
spark healthEinen Link zu einer Live-Übersicht: TPS, MSPT, CPU, Speicher, Festplatte. Aktualisiert sich alle 10 Sekunden.
spark gcVerlauf des Garbage Collectors: wie oft und wie lange er Speicher aufgeräumt hat.
spark pingDurchschnittlicher Ping der Spieler. Mit --player <NICK> der Ping eines Spielers.
spark tickmonitor --threshold-tick 50Überwacht Ticks, die länger als 50 ms dauern, und gibt jeden aus. Geben Sie spark tickmonitor erneut ein, um die Überwachung zu beenden.

Profiling Schritt für Schritt#

  1. Warten Sie, bis der Server laggt (oder bis er seine übliche Spielerzahl hat). Ein Profil eines leeren Servers zeigt nichts.

  2. Starten Sie in der Konsole den Profiler für 10 Minuten:

    text
    spark profiler start --timeout 600
    • spark profiler start – startet den Profiler.
    • --timeout 600 – stoppt ihn nach 600 Sekunden (10 Minuten) automatisch und lädt das Ergebnis hoch.
  3. Warten Sie 10 Minuten. In der Konsole erscheint ein Link zum Profil (spark.lucko.me/…).

  4. Fügen Sie den Link in den Analysator für spark-Profile ein. Er zeigt, was den Server bremst und was Sie ändern sollten.

Hochladen müssen Sie das Profil nicht: Mit der Option --save-to-file (zum Beispiel spark profiler start --timeout 600 --save-to-file) speichert spark es als Datei .sparkprofile im Ordner plugins/spark (auf Fabric und NeoForge config/spark). Laden Sie sie in der Registerkarte Dateien herunter und in den Analysator hoch.

Um den Profiler vorzeitig zu stoppen, geben Sie spark profiler stop ein. Für kurze Spitzen (der Server „friert“ gelegentlich für eine Sekunde ein) verwenden Sie:

text
spark profiler start --only-ticks-over 100
  • --only-ticks-over 100 – zeichnet nur Ticks auf, die länger als 100 ms dauern. Das filtert den normalen Betrieb heraus und lässt nur die „laggenden“ Ticks übrig. Wählen Sie einen Wert zwischen 50 und 100.

So lesen Sie das Ergebnis#

Möchten Sie den Baum selbst durchgehen, öffnen Sie den Link zum Profil im Browser:

  1. Klappen Sie in der Liste der Threads Server thread auf – den Hauptthread des Spiels. Probleme in anderen Threads (Laden von Chunks, Netzwerk) sind seltener.
  2. Klappen Sie Knoten per Klick auf und achten Sie auf die Prozentangaben. Folgen Sie immer dem Pfad mit dem größten Anteil.
  3. Zeit in Thread.sleep() oder im Zustand „parked“ ist in Ordnung – der Server wartet auf den nächsten Tick, weil er Reserven hat.
  4. Typische Befunde:
Was Sie im Profil sehenWas es bedeutetWas zu tun ist
Ein großer Anteil in tickEntities oder bei Entities (Villager, Zombie …)Zu viele Entities.entity-activation-range, Spawn-Limits, Farmen prüfen (siehe Wie viele Entities auf dem Server sind).
Ein großer Anteil bei der Generierung von ChunksSpieler erkunden neues Gelände.Chunky und eine Weltgrenze.
Der Paketname eines Plugins (zum Beispiel com.example.plugin)Ein bestimmtes Plugin.Aktualisieren, einstellen oder ersetzen.
Redstone, TrichterTechnische Bauten.redstone-implementation, hopper.disable-move-event (vorsichtig).
  1. Schalten Sie in der oberen Leiste die Ansicht auf Sources um – sie zeigt für jedes Plugin oder jeden Mod einen eigenen Baum, sodass Sie sofort sehen, was die größte Last verursacht.

Den Link zum Profil können Sie dem Autor des Plugins oder unserem Support senden. Er enthält keine Passwörter und keine Dateien des Servers.

Wie viele Entities auf dem Server sind#

Auf Paper gibt der Befehl paper entity list die Anzahl der Entities nach Typ aus. In der Konsole müssen Sie zusätzlich die Welt angeben:

text
paper entity list * minecraft:overworld
paper entity list minecraft:villager minecraft:overworld
  • paper entity list – listet Entities auf.
  • * – ohne Filter; listet alle Entity-Typen mit Anzahl auf (die erste Zahl sind tickende Entities, die zweite nicht tickende).
  • minecraft:villager – ein Filter für einen Typ. Die Ausgabe zeigt dann die Koordinaten der Chunks mit den meisten dieser Entities.
  • minecraft:overworld – die Welt (minecraft:the_nether, minecraft:the_end für die anderen Dimensionen). Im Spiel müssen Sie keine Welt angeben; es wird die verwendet, in der Sie stehen.

Sehen Sie sich die Stelle dann im Spiel an und verkleinern Sie die Farm oder das Gehege.

Mods für die Leistung (Fabric und NeoForge)#

Fabric und NeoForge haben die Optimierungen von Paper nicht, es gibt aber serverseitige Mods mit demselben Ziel. Alle finden Sie auf Modrinth (in der Registerkarte Mods › Durchsuchen):

ModWas er tutLoader
LithiumOptimiert Physik, KI von Mobs und weitere Teile des Spiels, ohne das Verhalten zu ändern.Fabric, NeoForge
FerriteCoreSenkt den Speicherverbrauch.Fabric, Forge, NeoForge
ModernFixBeschleunigt den Start und senkt den Speicherverbrauch, vor allem bei großen Modpacks.Fabric, Forge, NeoForge
C2MEParalleles Generieren und Laden von Chunks. Greift tief in die Arbeit mit der Welt ein – erstellen Sie vor dem Einsatz ein Backup.Fabric
sparkDer oben beschriebene Profiler.Fabric, Forge, NeoForge
ChunkyVorgenerierung der Welt.Fabric, Forge, NeoForge

Wählen Sie immer den Mod für Ihre genaue Minecraft- und Loader-Version. Details stehen unter Mods und Modpacks.

Wann es Zeit für ein Upgrade ist#

Ein Upgrade des Tarifs ist sinnvoll, wenn:

  • spark zeigt, dass die Last gleichmäßig verteilt ist (kein einzelnes Plugin und keine Farm dominiert) und die MSPT bei Ihrer üblichen Spielerzahl über 40 ms bleibt,
  • spark health den Speicher ständig an der Grenze zeigt und der Garbage Collector nicht hinterherkommt,
  • Sie ein großes Modpack hinzufügen oder deutlich mehr Spieler planen.

Beansprucht ein Plugin oder eine Farm den Großteil der Zeit, hilft mehr Leistung nicht – Sie müssen die Ursache beseitigen.

Überprüfung#

  1. Starten Sie den Server nach Ihren Änderungen neu und lassen Sie ihn mindestens 15 Minuten mit Spielern laufen.
  2. Geben Sie spark tps ein. Die MSPT (Median) sollte unter 50 ms liegen, ideal unter 35 ms, und die TPS bei 20.
  3. Die Meldung Can't keep up! sollte sich nicht mehr wiederholen.
  4. Sind Sie unsicher, erstellen Sie ein weiteres zehnminütiges Profil und vergleichen Sie es mit dem vorherigen.

Fehlerbehebung#

Der Server startet nach einer Änderung der Konfiguration nicht#

Meist ist es ein YAML-Fehler (ein Tabulator, falsche Einrückung, ein doppelter Abschnitt). Suchen Sie in der Konsole eine Zeile mit dem Dateinamen und der Zeilennummer. Beheben Sie den Fehler oder löschen Sie die Datei – Paper legt sie beim Start mit Standardwerten neu an (Ihre Änderungen gehen verloren). Alternativ stellen Sie ein Backup wieder her.

Die Parameter sind nicht kompatibel, auf die vorherigen Einstellungen zurückgesetzt.#

Der Server ist mit den neuen Parametern nicht gestartet, und der Kundenbereich hat sie zurückgesetzt. Prüfen Sie Ihre eigenen Parameter (Tippfehler, ein Parameter für eine andere Java-Version) und probieren Sie das Preset ohne eigene Parameter.

Der Server beendet sich plötzlich ohne Fehler im Log#

Ein typisches Zeichen für ein überschrittenes Speicherlimit. Die Konsole zeigt die Zeilen Exit code: 137 und Out of memory: true, und der Kundenbereich zeigt über der Konsole Dem Server ging der Speicher aus und das System hat ihn beendet. Das Panel startet den Server noch einmal; stürzt er innerhalb einer Minute erneut ab, lässt es ihn aus.

  1. Prüfen Sie in der Registerkarte Startoptionen die Warnungen neben den Startparametern. Ist der Heap für Ihren Tarif zu groß oder hat der Befehl keine Speicherobergrenzen, klicken Sie auf Empfohlene verwenden.
  2. Einen von Hand bearbeiteten oder als eigenen festgelegten Startbefehl überschreibt der Kundenbereich nicht. Verwenden Sie das empfohlene Preset oder stellen Sie den Heap nach der Tabelle unter Warum der Heap nicht der ganze RAM ist ein.
  3. Suchen Sie im Log nach OutOfMemoryError: Direct buffer memory oder OutOfMemoryError: Metaspace. Sie weisen auf ein Plugin oder einen Mod hin, das die Netzwerkpuffer füllt oder immer wieder Klassen lädt.
  4. Dauern die Abstürze auch mit den empfohlenen Einstellungen an, suchen Sie nach einem Speicherleck: spark heapsummary zeigt, was den Heap belegt, und spark profiler start --alloc --timeout 300 zeigt, was am meisten Speicher anfordert. Fügen Sie den Link in den Analysator für spark-Profile ein oder senden Sie ihn unserem Support.

java.lang.OutOfMemoryError: Java heap space#

Der Heap ist voll. Entweder ist auf dem Server mehr, als in den Speicher passt (ein Modpack, viele Spieler), oder ein Plugin oder Mod „verliert“ Speicher (ein Speicherleck). Es hilft ein Upgrade oder das Finden des Lecks mit spark heapsummary. Weitere Fehler finden Sie unter Häufige Fehler auf Minecraft-Servern.

Chunky meldet eine ungültige Welt#

Der Name der Welt existiert nicht. Verwenden Sie im Spiel /chunky world ohne Namen (wählt die Welt, in der Sie stehen), oder geben Sie in der Konsole den Namen der Hauptwelt aus level-name ein (Standard world).

Nach dem Einschalten von ALTERNATE_CURRENT funktioniert eine Redstone-Schaltung nicht#

Manche Schaltungen verlassen sich auf die Reihenfolge der Aktualisierungen von Vanilla. Stellen Sie misc.redstone-implementation wieder auf VANILLA und starten Sie den Server neu.

Zusammenfassung

  • Messen Sie Lag mit tps, mspt und spark tps: Ziel sind 20 TPS und eine MSPT unter 50 ms.
  • Die größte Wirkung: Paper, eine vorgenerierte Welt mit Grenze (Chunky) und eine vernünftige simulation-distance.
  • Heap und Speicherobergrenzen stellt der Kundenbereich anhand Ihres Tarifs selbst ein. Ändern Sie das Standard-Preset Empfohlen (G1) nur mit gutem Grund.
  • spark profiler start --timeout 600 findet die Ursache von Lag; fügen Sie den Link in den Analysator für spark-Profile ein.
  • Einstellungen von Paper ändern Sie in config/paper-world-defaults.yml, nach einem Backup und mit Neustart.

War diese Anleitung hilfreich?

Gilt für

  • Paper, Purpur
  • Fabric, NeoForge
  • Minecraft Java 1.20 und neuer
  • Minecraft 26.x

Dienste

Fehler in der Anleitung melden

Anleitungen durchsuchen