Minecraft Server Performance optimieren
TPS-Optimierung, Aikar's Flags, view-distance und simulation-distance richtig einstellen für einen lagfreien Minecraft-Server.
Minecraft Server Performance optimieren
Ein flüssiges Spielerlebnis hängt direkt von der Server-Performance ab. Dieser Guide zeigt dir, wie du die TPS (Ticks per Second) auf 20 hältst, Lag identifizierst und deinen Minecraft-Server optimal konfigurierst.
Grundlagen: TPS verstehen
Minecraft läuft mit 20 Ticks pro Sekunde. Ein Tick entspricht 50 Millisekunden. Wenn der Server die Arbeit für einen Tick nicht in 50 ms schafft, sinkt die TPS:
| TPS | Zustand | Spielergefühl |
|---|---|---|
| 20,0 | Perfekt | Kein Lag |
| 18-20 | Gut | Kaum spürbar |
| 15-18 | Akzeptabel | Gelegentliche Verzögerungen |
| 10-15 | Schlecht | Spürbares Lag, Mobs teleportieren |
| Unter 10 | Kritisch | Starke Verzögerungen, Blöcke verschwinden |
Du kannst die TPS mit dem Befehl /tps prüfen (erfordert EssentialsX oder ähnliches Plugin) oder mit dem Spark-Profiler.
JVM-Flags optimieren
Die Java Virtual Machine (JVM) startet mit Standard-Einstellungen, die für Minecraft nicht optimal sind. Paper wendet bereits sinnvolle Flags standardmäßig an. Wenn du die Flags manuell setzen möchtest oder einen Vanilla/Forge-Server verwendest, nutze die bewährten Aikar’s Flags.
Aikar’s Flags (Referenz)
Die folgenden Flags sind der Standard für Minecraft-Server. Passe -Xms und -Xmx an deinen RAM-Bedarf an:
-XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200
-XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC
-XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40
-XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20
-XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4
-XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90
-XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32
-XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1
-Daikars.new.flags=true
-Xms4G -Xmx4G
Bei RespawnHost werden diese Flags automatisch für Paper-Server gesetzt. Bei Forge- oder Fabric-Servern musst du sie eventuell manuell in den Startparametern konfigurieren.
view-distance und simulation-distance
Seit Minecraft 1.18 sind Sichtweite und Simulationsweite getrennt konfigurierbar. Das ist eine der wirksamsten Optimierungen.
view-distance
Bestimmt, wie viele Chunks um den Spieler gesendet werden. Betroffen sind Netzwerkbandbreite und RAM, nicht primär die CPU.
simulation-distance
Bestimmt, in welchem Radius Mobs spawnen, Redstone tickt, Pflanzen wachsen und Entities verarbeitet werden. Dies ist der Hauptfaktor für die CPU-Last.
Empfohlene Kombinationen
| Setup | view-distance | simulation-distance | RAM-Bedarf |
|---|---|---|---|
| Klein, privat | 8-10 | 4 | Gering |
| Mittel, öffentlich | 10-12 | 4-6 | Moderat |
| Groß, viele Spieler | 8-10 | 4 | Moderat |
| Redstone-Fokus | 10 | 6-8 | Hoch |
Konfiguriert wird dies in der server.properties:
view-distance=10
simulation-distance=4
Chunky: Welten vorab generieren
Das Generieren neuer Chunks während Spieler erkunden, verursacht starke TPS-Einbrüche. Die Lösung: Generiere die Welt vorab mit dem Plugin Chunky.
Chunky einrichten
- Installiere Chunky auf deinem Paper-Server
- Generiere die Welten vorab:
/chunky world normal
/chunky radius 5000
/chunky start
- Warte, bis die Generierung abgeschlossen ist (dauert je nach Radius)
- Für den Nether und das Ende wiederholen:
/chunky world nether
/chunky radius 2500
/chunky start
/chunky world end
/chunky radius 1500
/chunky start
Nach der Generierung deaktivierst du Chunky oder entfernst es. Die Chunks sind nun gespeichert und müssen nicht mehr zur Laufzeit generiert werden.
Spark: Performance-Profiling
Spark ist das wichtigste Werkzeug zur Diagnose von Performance-Problemen. Es zeigt genau, welche Threads, Plugins oder Welten die meiste CPU-Zeit verbrauchen.
Spark nutzen
- Installiere Spark als Plugin
- Starte einen Profiler:
/spark profiler start
- Warte 1-5 Minuten (oder bis Lag auftritt)
- Beende den Profiler:
/spark profiler stop
- Spark generiert einen Link zu einem detaillierten Web-Report
Der Report zeigt dir Call-Stacks, Tick-Verbrauch pro Plugin und potenzielle Engpässe. Nutze diese Daten, um gezielt zu optimieren statt zu raten.
paper-global.yml und paper-world-defaults.yml optimieren
Paper verwendet ab neueren Versionen eine aufgeteilte Konfigurationsstruktur: paper-global.yml für serverweite Einstellungen und paper-world-defaults.yml für weltbezogene Einstellungen. Die wichtigsten Optimierungen:
Chunk-Loading
chunk-loading:
max-auto-chunks-per-second: 12
player-max-chunk-load-rate: 16
player-max-concurrent-chunk-loads: 8
Entity-Optimierung
entity:
entity-cramming:
max-entity-cramming: 8
armor-stands:
tick: false
experience-orb:
merge-radius: 3.0
item:
merge-radius: 2.5
Mob-Spawning
spawn-limits:
monster: 30
creature: 5
ambient: 2
axolotls: 3
underground_water_creature: 3
water_creature: 3
Reduziere die Spawn-Limits, wenn zu viele Mobs Lag verursachen. Die Spieler merken den Unterschied meist nicht, solange die Werte nicht zu niedrig sind.
Weitere Optimierungs-Tipps
Redstone-Optimierung
Paper bietet Einstellungen zur Redstone-Optimierung. In der paper-world-defaults.yml:
redstone-implementation: alternate-current
alternate-current reduziert die Anzahl der Redstone-Updates signifikant, ohne das Verhalten für die meisten Konstruktionen zu verändern.
Hopper-Optimierung
Hopper sind eine häufige Ursache für Lag bei großen Farmen:
hopper:
cooldown: 8
disable-move-event: true
disable-move-event: true deaktiviert das InventoryMoveItemEvent, das Plugins aufrufen können. Wenn kein Plugin dieses Event nutzt, ist diese Einstellung sicher und spart CPU.
Netzwerk-Optimierung
In der server.properties:
network-compression-threshold=256
Ein Wert von 256 (statt dem Standard 64) reduziert die CPU-Last durch Kompression, erhöht aber die Bandbreite minimal. Bei Servern mit guter Netzwerkanbindung (wie RespawnHost in Frankfurt und Salt Lake City) ist das vernachlässigbar.
FAQ
Frage: Mein Server laggt — wo fange ich an?
Installiere Spark, starte einen Profiler und analysiere den Report. Die häufigsten Ursachen sind: zu viele Entities, zu hohe view-distance, ineffiziente Plugins oder ungenerierte Chunks. Siehe auch RAM-Empfehlungen für ausreichend Speicher.
Frage: Wie erkenne ich, welches Plugin Lag verursacht?
Der Spark-Profiler zeigt den CPU-Verbrauch pro Plugin im Tick-Thread. Alternativ kannst du Plugins einzeln deaktivieren und die TPS beobachten.
Frage: Brauche ich Aikar’s Flags bei Paper?
Paper nutzt bereits optimierte Standard-Flags. Aikar’s Flags können die Garbage-Collection jedoch weiter verbessern. Bei RespawnHost werden sinnvolle Flags standardmäßig gesetzt.
Frage: Was bringt pre-generation mit Chunky?
Chunky generiert Chunks im Voraus, sodass der Server sie zur Laufzeit nicht mehr berechnen muss. Das verhindert die häufigste Ursache für TPS-Einbrüche beim Erkunden neuer Gebiete. Einmal generiert, bleibt der Performance-Gewinn dauerhaft.
Frage: Hilft ein Server-Reset gegen Lag?
Nur kurzfristig. Wenn die Ursache der Lag nicht behoben ist (zu hohe view-distance, ineffiziente Plugins), tritt das Problem nach kurzer Zeit wieder auf. Nutze Spark, um die Ursache zu finden.
Frage: Sollte ich Vanilla statt Paper für bessere Performance nutzen?
Nein. Paper ist in fast allen Szenarien performanter als Vanilla. Die Optimierungen in Paper reduzieren CPU-Last und RAM-Verbrauch erheblich. Vanilla hat nur den Vorteil, dass es keine Inkompatibilitäten durch Modifikationen gibt.
Frage: Wie viel CPU braucht ein Minecraft-Server?
Minecraft ist primär Single-Threaded. Ein Kern mit hoher Single-Core-Performance ist wichtiger als viele Kerne. Ausnahme: Folia nutzt Multi-Threading für Chunk-Verarbeitung. RespawnHost-Server bieten hochtaktende CPUs, die für Minecraft optimiert sind.
Frage: Was ist der Unterschied zwischen Netzwerk-Lag und Server-Lag?
Server-Lag zeigt sich durch niedrige TPS — Blöcke verschwinden, Mobs bewegen sich ruckartig. Netzwerk-Lag zeigt sich durch hohe Ping-Werte — Aktionen werden verzögert ausgeführt, aber die TPS bleibt bei 20. Bei RespawnHost sind beide Standorte (Frankfurt und Salt Lake City) an große Internet-Knoten angebunden für minimale Latenz.