spark ist der Profiler für Minecraft-Server. Wenn der Server ruckelt, sagt dir spark in Sekunden, ob die Tickrate leidet, welche Plugins oder Farmen die Zeit fressen und ob die CPU oder der Speicher am Limit ist. Der Guide zeigt die drei Befehle, die du wirklich brauchst, und wie du die Zahlen liest. Die Bildschirmfotos stammen aus einem Testserver mit Paper 1.21.4.

Installation

spark läuft als Plugin auf Paper und Spigot und als Mod auf Fabric, NeoForge und Forge. Im Panel findest du es unter Plugins → Browser. Es braucht keine Konfiguration. Die Befehle gehören in die Moderationsgruppe; der Knoten dafür heißt spark. Wie du ihn vergibst, steht in LuckPerms: Rechte einrichten.

Erster Blick: TPS und Tick-Dauer

/spark tps zeigt drei Zeilen:

Ausgabe von /spark tps: TPS, Tick-Dauern und CPU-Auslastung
Ausgabe von /spark tps: TPS, Tick-Dauern und CPU-Auslastung
  • TPS (Ticks pro Sekunde) über die letzten 5 Sekunden, 10 Sekunden, 1, 5 und 15 Minuten. 20,0 ist das Maximum. Ab etwa 19 merken Spieler noch nichts, unter 15 laufen Tiere abgehackt, unter 10 wird der Server unspielbar.
  • Tick-Dauer als Minimum, Median, 95. Perzentil und Maximum in Millisekunden. Ein Tick darf 50 ms dauern, damit 20 TPS gehalten werden. Im Bild liegt der Median bei 2,4 ms; der Server hat also viel Reserve. Entscheidend ist das 95. Perzentil: Liegt es nahe 50 ms, kommen Ruckler, obwohl der Durchschnitt gut aussieht.
  • CPU-Auslastung getrennt nach System (die ganze Maschine) und Prozess (nur dein Server). Bei einem gemieteten Server ist der Prozess-Wert der wichtige.

/spark healthreport fasst dieselben Werte mit Speicher und Festplatte in einem Bericht zusammen.

Der Profiler: Wer frisst die Zeit?

Wenn die TPS einbrechen, startest du den Profiler:

/spark profiler start

spark bestätigt den Start und läuft im Hintergrund weiter. Lass ihn mindestens eine Minute laufen, während das Problem auftritt, dann:

/spark profiler stop
Der Profiler läuft im Hintergrund; spark zeigt die Befehle zum Anzeigen, Stoppen und Abbrechen
Der Profiler läuft im Hintergrund; spark zeigt die Befehle zum Anzeigen, Stoppen und Abbrechen

Beim Stoppen lädt spark den Bericht auf spark.lucko.me hoch und gibt einen Link aus. Der Bericht enthält keine Spielernamen, keine IP-Adressen und keine Chatnachrichten, sondern Aufrufbäume des Java-Prozesses. /spark profiler open öffnet ihn schon während des Laufs, /spark profiler cancel verwirft ihn ohne Upload.

Im Bericht klappst du den Baum von oben auf. Was du typischerweise findest:

  • Entity-Ticks eines bestimmten Typs: eine Farm mit Hunderten Tieren oder Gegenständen. Farm verkleinern oder mit entity-activation-range in paper-world-defaults.yml beruhigen.
  • Ein Plugin in einem Event-Listener: Plugin aktualisieren, Konfiguration prüfen oder ersetzen.
  • Chunk-Laden durch Spieler, die schnell fliegen: Sichtweite senken oder die Welt mit Chunky vorgenerieren.
  • Redstone-Uhren: eine Schaltung, die nie stillsteht. Den Spieler bitten, sie abzuschalten.

Garbage Collection und Speicher

/spark gc zeigt, wie oft und wie lange die Java-Speicherbereinigung pausiert. Viele lange Pausen bedeuten zu wenig RAM oder ein Speicherleck in einem Plugin. /spark heapsummary listet, welche Objekttypen den Speicher belegen. Bevor du mehr RAM buchst, lohnt ein Blick hierher: Oft löst ein Plugin-Update das Problem.

Typische Fehler

  • TPS 20, trotzdem Lag. Das Problem liegt beim Client oder im Netz. /spark ping zeigt die Latenz pro Spieler.
  • Profiler-Link vergessen. /spark profiler ohne Argumente zeigt den Status; nach dem Stoppen steht der Link auch in der Serverkonsole.
  • Zahlen ohne Vergleich. Ein TPS-Wert allein sagt wenig. Miss einmal mit leerem Server als Referenz.

Weiterführende Guides

Eine Welt vorab zu erzeugen nimmt dem Server das Chunk-Laden ab: Chunky: Welt vorgenerieren. Wie das Panel dauerhaft niedrige TPS meldet, beschreibt Minecraft-Server-Lag: TPS und Watchdog.

Quellen