Blog · blog

Die besten Performance-Mods für Minecraft-Server

Server-seitiges Lag ist ein anderes Problem als die Client-FPS. Papier oder Purpur, abgestimmte JVM-Flags, vorgegenerierte Chunks und eine vernünftige Sichtweite beheben die meisten Probleme.

TRtrolPublished 6 min read

Server-Lags sind etwas anderes als Client-Lags

Client-seitige Anleitungen sprechen über FPS: die Frames, die deine eigene GPU rendert. Die Serverleistung ist eine völlig separate Messung, Ticks pro Sekunde, wie oft pro Sekunde der Server seine vollständige Spielschleife ausführen kann. Wenn die TPS unter 20 fällt, spürt jeder verbundene Spieler dies als Rückstoß, verzögerte Treffer und Mobs, die hinter ihrer tatsächlichen Position herhinken, unabhängig davon, wie leistungsstark der PC eines einzelnen Spielers ist. Die Behebung dieses Problems liegt vollständig auf der Serverseite der Verbindung.

Dieser Unterschied ist wichtig, weil die beiden Probleme ständig vermischt werden. Ein Spieler mit 300 FPS lokal wird immer noch einen Server spüren, der mit 12 TPS läuft, und kein Client-Mod ändert das. Wenn Sie einen Server betreiben, insbesondere eine belebte Minispiel-Lobby mit BedWars- oder SkyWars-Arenen, die ständig zurückgesetzt werden, sind die unten stehenden Lösungen der Bereich, in dem sich Ihre Zeit tatsächlich auszahlt.

Wählen Sie Server-Software, die für hohe Last ausgelegt ist

Die Standard-Minecraft-Server-Software und eine unoptimierte Spigot-Einrichtung führen fast alles in einem einzigen Thread aus. Paper und Forks wie Purpur bauen große Teile dieser Pipeline neu auf, um asynchron und multithreaded zu laufen, und liefern außerdem eine lange Liste von Standardoptimierungen, die in der Vanilla-Version nie vorhanden waren. Dies ist der wichtigste Hebel, den es gibt, bevor Sie ein einzelnes Plugin oder eine Einstellung ändern.

Papier

Die Standardwahl für moderne Anwendungen. Asynchrones Chunk-Laden, Optimierungen der Entitätsverfolgung und eine umfangreiche Reihe von paper.yml-Tuning-Optionen, die die meisten Administratoren nie vollständig ausschöpfen.

Purpur

Eine Pappgabel mit zusätzlichen Performance-Reglern und Gameplay-Umschaltern, die darüber geschichtet sind. Lohnt sich, wenn du mehr Kontrolle ohne Verlassen des Paper-Ökosystems möchtest.

Vanille und Stockspigot

Funktional, lässt aber für alles über einen kleinen, wenig frequentierten Server echte Leistung auf der Strecke.

JVM-Flags abstimmen, nicht nur die Serverkonfiguration

Minecraft-Server laufen innerhalb einer Java Virtual Machine, und die Standard-Garbage-Collection-Einstellungen der JVM wurden nie für das spezifische Speicherverhalten von Minecraft optimiert. Aikars Flags sind ein weit verbreiteter, öffentlich dokumentierter Satz von JVM-Startflags, die den Garbage Collector speziell für dieses Verhalten konfigurieren und unter realer Spielerlast die Häufigkeit und Dauer von GC-bedingten Einfrierungen deutlich reduzieren.

Welt vorab generieren, bevor Spieler sie überhaupt sehen

Eine der häufigsten Ursachen für plötzliche TPS-Einbrüche ist die Generierung neuer Chunk-Blöcke durch den Server in Echtzeit, während Spieler in unbeanspruchtes Gebiet vordringen. Diese Generierungsarbeit konkurriert direkt mit allem, was der Server im selben Taktzyklus zu tun versucht. Ein Werkzeug wie Chunky generiert die Chunk-Blöcke vorab in einem kontrollierten, gedrosselten Durchlauf, sodass Spieler, die später erkunden, diesen Anstieg gar nicht erst auslösen.

Für ein Minispiel-Netzwerk ist dies auf den Arenakarten selbst, die in der Regel statisch und klein sind, weniger relevant, sondern eher auf offenen Hubs oder Lobby-Welten, in denen Spieler herumlaufen können.

Sichtweite und Simulationsdistanz reduzieren

Diese beiden Einstellungen bestimmen, wie viel Welt der Server um jeden Spieler herum laden und simulieren muss, und sie sind die Einstellungen, die Server-Betreiber am häufigsten auf Standardwerte belassen, die schlichtweg zu hoch für ihre Spieleranzahl und Hardware sind.

EinstellungWas sie steuertHäufiger Fehler
SichtweiteWie viele Chunk-Blöcke an jeden Client gesendet werdenAuf einem Standardwert belassen, der zu hoch für die Spieleranzahl ist
SimulationsdistanzWie weit Mobs, Blöcke und Redstone tatsächlich simulierenAuf Sichtweite gesetzt, obwohl dies nicht erforderlich ist

Die Simulationsdistanz ist in der Regel der erste Wert, den man reduzieren sollte. Spieler benötigen keine Simulation von Mobs und Redstone in der gleichen Entfernung wie die gerenderten Chunks, und die Reduzierung dieser Distanz spart Rechenzeit, ohne das Spielerlebnis wesentlich zu beeinträchtigen.

Profilieren, bevor man spekuliert

Das Rätseln über die Ursache von Lag kostet Zeit. Ein Profiler wie spark erfasst genau, wohin die Server-Tickzeit fließt, sei es durch ein bestimmtes Plugin, die Weltgenerierung, die Verarbeitung von Entities oder etwas völlig anderes, anstatt wahllos Einstellungen anzupassen und darauf zu hoffen.

  1. Installiere Papier oder Purpur

    Migrieren Sie zuerst von Vanilla oder Stock Spigot. Dadurch werden alle unten aufgeführten Optimierungen freigeschaltet.

  2. Wende Aikars Flags in deinem Startup-Skript an

    Kopieren Sie das dokumentierte Flag-Set in den Startbefehl Ihres Servers und starten Sie ihn neu. Dies ist eine einmalige Änderung mit langfristigem Nutzen.

  3. Generiere deine Welt im Voraus mit Chunky

    Führe es während Zeiten geringer Auslastung aus, damit erforschende Spieler später nicht versehentlich die Generierung von Live-Chunks auslösen.

  4. Legen Sie die Sichtweite und die Simulationsdistanz bewusst fest

    Passen Sie die Einstellungen an Ihre tatsächliche Spieleranzahl und Hardware an, anstatt die Standardeinstellungen der Plattform beizubehalten.

  5. Profil mit Zündfunke unter realer Last

    Erfassen Sie einen Bericht während der Stoßzeiten und beheben Sie, was er tatsächlich aufzeigt, anstatt zu raten.

Server-seitige Leistung ist nicht die ganze Geschichte

Ein stabiler TPS-Wert ist nur die halbe Miete. Jeder Spieler rendert diesen stabilen Server immer noch auf seiner eigenen Maschine, und ein rocken-solider Server hilft niemanden, dessen eigener Client mit dem Rendern, dem Speicher oder einem inkompatiblen Shader-Pack zu kämpfen hat. Wenn Sie ein BedWars- oder SkyWars-Netzwerk betreiben und bereits die oben genannten Arbeiten geleistet haben, ist die andere Hälfte eines reibungslosen Spielerlebnisses das, was auf der Seite der Spieler passiert. Genau diese Lücke schließt Terminus, indem es die Client-Leistung optimiert, um die Serverarbeit zu ergänzen, die Sie bereits geleistet haben.

FAQ

Besorge Terminus

Tuned client performance to match the server work you already did.