Zurück zum Blog
spark profilerpaper timingsminecraft lagserver profilingtick optimizationminecraft performanceserver administration

Minecraft Server Tick-Profiling: Lag finden und beheben mit Spark und Timings

Veröffentlicht am 14. Juli 2026

# Minecraft Server Tick-Profiling: Lag finden und beheben mit Spark und Timings

Du hast deine server.properties angepasst, die View Distance reduziert und jeden Optimierungs-Plugin installiert, von dem du je gehört hast — trotzdem ruckelt dein Server. Das Problem: Die meisten Server-Admins optimieren *blind*. Ohne richtiges Profiling rätst du nur.

Dieser Guide zeigt dir, wie du mit Spark und Paper Timings genau herausfindest, was Lag auf deinem Minecraft-Server verursacht — und wie du es behebst.

---

Warum Profiling vor der Optimierung entscheidend ist

Jeder Minecraft-Server-Tick (idealerweise 50ms, also 20 TPS) umfasst hunderte von Operationen: Entity-KI, Chunk-Loading, Plugin-Event-Handler, Welt-Speicherung und mehr. Dauert ein Tick länger als 50ms, sinkt dein TPS-Wert.

Ohne Profiling könnte es passieren, dass du stundenlang Entity-Limits optimierst, obwohl das eigentliche Problem ein Plugin ist, das jede Tick eine schwere Datenbankabfrage ausführt. Profiling zeigt dir, wo deine Millisekunden tatsächlich hinführen.

---

Methode 1: Spark Profiler (Empfohlen)

[Spark](https://spark.lucko.me/) ist der Goldstandard für Minecraft-Server-Profiling. Es funktioniert auf Paper, Spigot, Purpur, Folia und sogar auf Velocity/BungeeCord-Proxys.

Spark installieren

Lade die neueste Spark-JAR von [spark.lucko.me](https://spark.lucko.me/) herunter und lege sie in deinen /plugins-Ordner. Starte den Server neu.

Ein Profil aufzeichnen

Während einer Lag-Phase oder bei hoher Spieleraktivität führe aus:

/spark profiler start

Lass es 60–120 Sekunden laufen, während der Lag auftritt, dann stoppe es:

/spark profiler stop

Spark erstellt einen teilbaren Link (z.B. https://spark.lucko.me/xxxxxxxxxx) mit einem interaktiven Flame-Graph.

Den Flame-Graph lesen

Der Flame-Graph zeigt dir einen Call-Stack-Überblick, wo CPU-Zeit verbraucht wird:

  • Breite Balken = mehr Zeit in dieser Methode
  • Suche nach breiten Balken oben im Stack — das sind deine Engpässe
  • Häufige Übeltäter: CraftScheduler (Plugin-Tasks), EntityAI, ChunkMap, LevelChunk

Beispiel-Befunde:

  • Ein breiter AsyncChatDecoratorEvent-Balken → ein Chat-Plugin verlangsamt die Nachrichtenverarbeitung
  • Starke PathfinderGoal-Nutzung → zu viele Mobs mit komplexer KI gleichzeitig aktiv
  • BlockPhysicsEvent-Spam → Plugin oder Kolben-Kette reagiert auf jedes Block-Update

Spark Health-Befehle

Spark enthält auch schnelle Diagnose-Befehle:

/spark health        — Übersicht über TPS, CPU, Arbeitsspeicher

/spark gc — Garbage-Collection-Statistiken

/spark heapsummary — Speicher-Aufschlüsselung nach Objekttyp

/spark tps — TPS der letzten 5s/10s/1min

Diese sind unverzichtbar für schnelle Checks ohne ein volles Profil zu starten.

---

Methode 2: Paper Timings

Wenn du Paper (oder seine Forks) verwendest, hast du Zugriff auf das eingebaute Timings-System. Während Spark generell genauer ist, ist Timings für Anfänger einfacher zu interpretieren.

Timings ausführen

/timings reset       — löscht vorhandene Daten

/timings report — generiert einen Bericht nach Datensammlung

Warte einige Minuten während aktiven Spielens, dann führe /timings report aus. Du erhältst einen Link zu [timings.aikar.co](https://timings.aikar.co).

Den Timings-Bericht lesen

Der Bericht ist in Abschnitte aufgeteilt:

  • Plugin-Timings — zeigt, wie lange jedes Plugin pro Tick benötigt
  • Entity-Timings — welche Entity-Typen die meiste Zeit beanspruchen
  • World-Timings — Aufschlüsselung pro Welt

Achte auf:

  • Jedes Plugin, das konsistent mehr als 1ms pro Tick benötigt — ein klares Warnsignal
  • Hohe Tile Entity Tick-Werte → zu viele Trichter, Öfen oder benutzerdefinierte Tile-Entities
  • Hohe Entity Tick-Werte in einer bestimmten Welt → Mob-Überpopulation

> Hinweis: Paper bewegt sich von Timings weg, hin zu Spark. Auf neueren Paper-Versionen kann Timings veraltet sein. Spark ist immer die bessere Langzeit-Wahl.

---

Häufige Lag-Quellen und Lösungen

Sobald du den Verursacher identifiziert hast, hier die häufigsten Befunde und ihre Lösungen:

Plugin-Scheduler-Missbrauch

Wenn Spark starke CraftScheduler-Nutzung zeigt, führt ein Plugin teure Tasks im Haupt-Thread aus.

Lösung: Prüfe, welches Plugin unter dem Scheduler-Call gelistet ist. Suche nach Plugins, die jede paar Ticks synchrone Tasks ausführen. Kontaktiere den Entwickler oder ersetze das Plugin.

In bukkit.yml kannst du auch prüfen:

tick-per:

animal-spawns: 400

monster-spawns: 1

water-spawns: 1

autosave: 6000

Das Erhöhen von monster-spawns auf 2 oder 4 reduziert, wie oft Spawn-Checks durchgeführt werden.

Trichter-Lag

Trichter (Hoppers) sind eine der teuersten Tile-Entities. In paper-world.yml:

hopper:

cooldown-when-full: true

disable-move-event: true

ignore-occluding-blocks: true

Und in spigot.yml:

world-settings:

default:

hopper-amount: 1

hopper-can-load-chunks: false

Übermäßige Entity-KI

Wenn PathfinderGoal deinen Flame-Graph dominiert:

In paper-world.yml:

entity:

activation-range:

animals: 16

monsters: 24

misc: 8

brain-ticks:

villager: 2

In purpur.yml (bei Purpur):

mobs:

villager:

lobotomize:

enabled: true

check-interval: 100

Das Lobotomieren von feststeckenden oder inaktiven Dorfbewohnern spart enorm viel Tick-Zeit.

Welt-Speicher-Lag-Spikes

Wenn du periodische Lag-Spikes in Spark rund um save-all siehst, passe in bukkit.yml an:

chunk-gc:

period-in-ticks: 600

autosave-period: 6000

Und in server.properties:

sync-chunk-writes=false

Das verlagert Chunk-Schreiboperationen auf Paper-Servern aus dem Haupt-Thread.

---

Einen Profiling-Workflow aufbauen

Profile nicht einmal und vergiss es danach. Entwickle eine Routine:

  1. Während Stoßzeiten profilen — Lag ist abseits der Stoßzeiten schwerer zu reproduzieren
  2. Nach jedem großen Plugin-Update profilen — Updates können Performance-Regressionen einführen
  3. Eine Basislinie speichern — bewahre einen Spark-Bericht vom gesunden Server-Zustand zum Vergleich auf
  4. Vor und nach Änderungen profilen — verifiziere, dass deine Fixes tatsächlich geholfen haben

Tools wie [PulseNode](https://pulsenode.tech) helfen dir dabei, TPS-Einbrüche automatisch mit Server-Ereignissen zu korrelieren — sodass du genau weißt, *wann* du ein Spark-Profil starten solltest, ohne rund um die Uhr deine Konsole zu beobachten.

---

Zusammenfassung

| Tool | Am besten für | Plattform |

|------|--------------|----------|

| Spark | Tiefes CPU-Profiling, Flame-Graphs | Alle Plattformen |

| Paper Timings | Schnelle Plugin/Entity-Aufschlüsselung | Paper/Forks |

| /spark health | Schneller TPS/Speicher-Überblick | Alle Plattformen |

Profiling ist die effektivste einzelne Optimierungstechnik, weil sie Rätselraten eliminiert. Sobald du deinen tatsächlichen Engpass kennst, hat jede Konfigurations-Änderung eine messbare, gezielte Wirkung.

Hör auf, blind zu optimieren — erst profilen, dann beheben.

---

*Möchtest du sofort wissen, wenn dein Server beginnt zu laggen — bevor deine Spieler es bemerken? [PulseNode](https://pulsenode.tech) überwacht deine TPS, den Arbeitsspeicher und Entity-Zahlen in Echtzeit und benachrichtigt dich sofort, wenn etwas schiefläuft.*

Server-Performance optimieren?

PulseNode überwacht deinen Minecraft Server in Echtzeit und gibt dir KI-gestützte Optimierungstipps.

Kostenlos starten
Minecraft Server Tick-Profiling: Lag finden und beheben mit Spark und Timings — PulseNode Blog | PulseNode