Wie behebe ich Server-Lag mit dem Spark-Profiler?
In diesem Artikel
Dein Server fühlt sich träge an: Blöcke erscheinen wieder, nachdem du sie abgebaut hast, Mobs frieren ein, Befehle reagieren verzögert und in der Konsole erscheint Can't keep up! Is the server overloaded?. Du musst nicht raten, welche Farm oder welches Plugin schuld ist — mit dem kostenlosen Spark-Profiler misst du genau, wo jeder Tick seine Zeit verliert. In dieser Anleitung installierst du Spark, erstellst während des Lags ein Profil und übersetzt den Bericht in einen konkreten Fix.
Zuerst verstehen: TPS, MSPT und 'Can't keep up'
Ein Minecraft-Server läuft mit 20 Ticks pro Sekunde (TPS). In jedem Tick aktualisiert der Server die gesamte Welt und hat dafür höchstens 50 Millisekunden Zeit. MSPT (milliseconds per tick) gibt an, wie lange ein Tick tatsächlich dauert. Bleibt die MSPT unter 50, läufst du flüssig auf 20 TPS; steigt sie darüber, sinkt die TPS und buchstäblich alles auf dem Server wird langsamer.
Die Meldung Can't keep up! Is the server overloaded? Running 2000ms or 40 ticks behind bedeutet genau das: Die Ticks haben zu lange gedauert, der Server hängt hinterher und überspringt Ticks, um aufzuholen. Einmal beim Start ist das harmlos; kehrt die Meldung während des Spielens zurück, hast du echten Server-Lag.
Prüfe zuerst, ob das Problem überhaupt beim Server liegt. Niedrige FPS oder ein ruckelndes Bild (besonders mit Shadern) ist Client-Lag; Rubberbanding bei hohem Ping ist Verbindungs-Lag. Tippe /spark tps: Stehen dort stabile 20 TPS mit niedriger MSPT, such die Ursache beim Client oder im Netzwerk.
Schritt 1: Installiere Spark
- Läuft bei dir Paper oder Purpur 1.21 oder neuer, ist Spark bereits eingebaut. Tippe
spark tpsim Tab Console des MC-Node-Panels; bekommst du eine Antwort, spring direkt zu Schritt 2. - Andernfalls lädst du Spark über spark.lucko.me/download herunter. Wähle die Bukkit-Version für Paper/Spigot oder die Fabric/Forge/NeoForge-Version für einen Modded-Server.
- Öffne den Tab Files im Panel und lade die Jar in den Ordner
pluginshoch (bei einem Modded-Server:mods). - Starte den Server über den Tab Console neu und prüfe mit
spark tps, dass der Befehl funktioniert.
Schritt 2: Erstelle ein Profil, während der Lag auftritt
Die größte Falle: das Profiling auf einem leeren oder frisch neu gestarteten Server. Ohne Spieler laufen die Farmen, Hopper und Chunks, die den Lag verursachen, gar nicht mit — der Bericht zeigt dann schlicht nichts. Starte den Profiler genau dann, wenn der Lag wirklich auftritt, mit Spielern online.
- Warte, bis der Lag auftritt, oder lass Spieler die Situation nachstellen (zum Beispiel an der verdächtigen Farm).
- Tippe in die Konsole:
spark profiler start --timeout 300. Der Profiler misst 5 Minuten lang und stoppt von selbst. Ohne--timeoutstoppst du ihn selbst mitspark profiler stop. - Lass alle ganz normal weiterspielen; die Messung selbst kostet kaum Leistung.
- Danach gibt die Konsole einen Link zu
spark.lucko.meaus. Öffne ihn in deinem Browser.
Schritt 3: Lies den Bericht
- Oben siehst du TPS und MSPT während der Messung — so bestätigst du, dass du den Lag wirklich erwischt hast.
- Öffne die Baumstruktur unter dem Server-Thread und klappe jeweils die Zeile mit dem höchsten Prozentsatz auf. So arbeitest du dich zu der Aufgabe vor, die die meiste Tick-Zeit frisst.
- Erkenne die Muster: Viel Zeit in
entityTickoder Mob-KI deutet auf zu viele Entities;HopperBlockEntityauf Hopper-Strecken;chunk generationoderServerChunkCacheauf Chunk-Loading; und ein Paketname wiecom.beispiel.pluginnameentlarvt genau dieses eine Plugin als Übeltäter.
Häufige Ursachen und ihre Fixes
- Zu viele Entities — Meist Mob-Farmen oder herumliegende Items. Setze
/gamerule maxEntityCramming 8(Standard 24), senke diespawn-limitsin derbukkit.ymlund dieentity-activation-rangein derspigot.yml, und gib großen Farmen einen An/Aus-Schalter. - Hopper — Lange Hopper-Strecken prüfen in jedem Tick aufs Neue. Erhöhe in der
bukkit.ymlden Wertticks-per.hopper-transfer(zum Beispiel von 8 auf 16) und setze auf Paper inconfig/paper-world-defaults.ymldie Optionhopper.cooldown-when-fullauftrue. Ersetze extrem lange Strecken durch Wasserströme mit weniger Hoppern. - Chunk-Loading und Worldgen — Erkundende Spieler zwingen den Server, neue Chunks zu generieren. Senke in der
server.propertiesdiesimulation-distance(zum Beispiel auf 6) und gegebenenfalls dieview-distance, richte eine Weltgrenze ein und pre-generiere die Welt mit dem Plugin Chunky:/chunky radius 3000gefolgt von/chunky start. - Ein Plugin ganz oben — Update das Plugin zuerst, schalte schwere Features (Scans, Animationen, Hologramme) in der Config ab oder such dir eine leichtere Alternative. Zum Testen kannst du die Jar vorübergehend aus
pluginsherausnehmen und neu starten. - 'Can't keep up' nur beim Start — Harmlos: Der Server holt die Startspitze auf. Handeln musst du nur, wenn die Meldung während des Spielens zurückkehrt.
- TPS ist 20, aber Spieler beschweren sich trotzdem — Dann ist es Client- oder Netzwerk-Lag: Verringere clientseitig die Renderdistanz oder schalte Shader aus, oder untersuche den Ping.
Weiter optimieren
Hast du früher mit /timings gearbeitet? Unser Artikel über Timings erstellen ist veraltet; Spark ist der moderne Nachfolger. Strukturelle Verbesserungen findest du in unserem Optimierungsguide, und ob zu wenig Arbeitsspeicher mitspielt, liest du im RAM-Guide. Kommst du nicht weiter? Eröffne ein Ticket über unsere Supportseite und füge den Link zu deinem Spark-Bericht hinzu — dann schauen wir gemeinsam drauf.
Starte deinen Server in 60 Sekunden auf unserer eigenen Hardware.