/
mc-node.net →
Minecraft

Wie behebe ich Server-Lag mit dem Spark-Profiler?

Aktualisiert am 31/08/20264 Min. Lesezeit
In diesem Artikel
  1. Zuerst verstehen: TPS, MSPT und 'Can't keep up'
  2. Schritt 1: Installiere Spark
  3. Schritt 2: Erstelle ein Profil, während der Lag auftritt
  4. Schritt 3: Lies den Bericht
  5. Häufige Ursachen und ihre Fixes
  6. Weiter optimieren

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

  1. Läuft bei dir Paper oder Purpur 1.21 oder neuer, ist Spark bereits eingebaut. Tippe spark tps im Tab Console des MC-Node-Panels; bekommst du eine Antwort, spring direkt zu Schritt 2.
  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.
  3. Öffne den Tab Files im Panel und lade die Jar in den Ordner plugins hoch (bei einem Modded-Server: mods).
  4. 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.

  1. Warte, bis der Lag auftritt, oder lass Spieler die Situation nachstellen (zum Beispiel an der verdächtigen Farm).
  2. Tippe in die Konsole: spark profiler start --timeout 300. Der Profiler misst 5 Minuten lang und stoppt von selbst. Ohne --timeout stoppst du ihn selbst mit spark profiler stop.
  3. Lass alle ganz normal weiterspielen; die Messung selbst kostet kaum Leistung.
  4. Danach gibt die Konsole einen Link zu spark.lucko.me aus. Öffne ihn in deinem Browser.

Schritt 3: Lies den Bericht

  1. Oben siehst du TPS und MSPT während der Messung — so bestätigst du, dass du den Lag wirklich erwischt hast.
  2. Ö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.
  3. Erkenne die Muster: Viel Zeit in entityTick oder Mob-KI deutet auf zu viele Entities; HopperBlockEntity auf Hopper-Strecken; chunk generation oder ServerChunkCache auf Chunk-Loading; und ein Paketname wie com.beispiel.pluginname entlarvt 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 die spawn-limits in der bukkit.yml und die entity-activation-range in der spigot.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.yml den Wert ticks-per.hopper-transfer (zum Beispiel von 8 auf 16) und setze auf Paper in config/paper-world-defaults.yml die Option hopper.cooldown-when-full auf true. 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.properties die simulation-distance (zum Beispiel auf 6) und gegebenenfalls die view-distance, richte eine Weltgrenze ein und pre-generiere die Welt mit dem Plugin Chunky: /chunky radius 3000 gefolgt 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 plugins herausnehmen 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.