aslain.dev
0%
01 Hizmetler 02 Hakkımda 03 Projeler 04 Stack 05 Blog 06 İletişim
← Tüm makaleler Metin2

Metin2 Lag beheben: Server- und Netzwerk-Tuning

Ein verlässliches Vorgehen, um Metin2 Lag zu beheben, beginnt mit einer Wahrheit, die viele Serverbetreiber auf die harte Tour lernen: "Lag" ist nicht nur ein Problem. Wenn Spieler sich beschweren, beschreiben sie eigentlich drei verschiedene Dinge — hohen Ping (Netzwerkverzögerung), niedrige FPS (Client-Seite) oder einen Server, der Befehle zu langsam verarbeitet (Server-Tick-Verzögerung). Jeder Eingriff ohne diese Trennung bringt nichts oder erzeugt ein neues Problem. In diesem Leitfaden zeige ich, wie du die Verzögerung zuerst richtig diagnostizierst und sie dann Schritt für Schritt auf Server- und Netzwerkseite behebst.

Zuerst diagnostizieren: woher kommt der Lag?

Bevor du etwas anfasst, miss die Quelle in Zahlen. "Es zu spüren" reicht nicht; Ping, Paketverlust und Serverlast sind drei getrennte Metriken.

  • Netzwerkverzögerung: die Umlaufzeit vom Spieler zum Server. Ist der In-Game-Ping bei allen hoch, liegt es wahrscheinlich am Serverstandort oder Routing; ist er nur bei einzelnen Spielern hoch, an deren Verbindung.
  • Paketverlust: Verbindungsabbrüche, Teleportieren und das "Rubber-Banding"-Gefühl kommen meist vom Paketverlust, nicht vom reinen Ping.
  • Serverlast: Hängt ein CPU-Kern dauerhaft bei 100%, verarbeitet die Spiellogik (core/db) Befehle verspätet; das Spiel fühlt sich "schwer" an, selbst bei niedrigem Ping.

Auf einem Linux-VPS ist deine erste Anlaufstelle die Live-Ressourcennutzung:

htop                 # CPU/RAM-Verteilung, welcher Prozess ist belastet
mpstat -P ALL 2      # CPU pro Kern (ist ein einzelner Kern ausgelastet?)
ss -s                # Übersicht offener Sockets/Verbindungen

Metin2-Emulatoren neigen dazu, die Spiellogik stark auf einem einzelnen Kern laufen zu lassen. Selbst wenn die Gesamt-CPU 25% zeigt: liegt ein Kern bei 100%, ist dieser Kern dein Engpass.

Netzwerkverzögerung messen

Statt dem In-Game-Wert zu vertrauen, miss den Ping auf Netzwerkebene. mtr ist nützlicher als ping und traceroute, weil es sowohl die durchschnittliche Verzögerung als auch den Hop zeigt, an dem der Paketverlust beginnt:

mtr -rwzbc 100 SPIELER_IP
# -c 100: sende 100 Pakete, der Durchschnitt wird zuverlässiger
# achte auf die Spalten Loss% und Avg in der letzten Zeile

Beginnt der Paketverlust nicht an den ersten Hops, sondern bei einem Anbieter mitten in der Route, liegt das Problem nicht an deinem Server, sondern am Transitnetzwerk; öffne in dem Fall ein Ticket bei deinem Hosting-Anbieter, um die Route zu korrigieren. Ein dauerhaft hoher Ping ist meist ein Problem der geografischen Entfernung: Sitzen die meisten Spieler in einer Region, bringt das Verschieben des Servers in ein nahes Rechenzentrum einen klareren Gewinn als jede Software-Einstellung.

Serverseite: Engpässe bei Core und Datenbank

Die beiden häufigsten Ursachen für lastbedingten Lag sind Quest-/KI-Schleifen und langsame Datenbankabfragen.

  • Schwere Quests: when ... begin-Blöcke, die pro Spieler mehrmals pro Sekunde laufen — besonders solche mit Schleifen und häufigen timer-Aufrufen — ersticken die CPU. Mache ständig ausgelöste Quests stattdessen ereignisgesteuert (event-driven).
  • Abfragen ohne Index: Fehlt großen Tabellen wie player oder item ein Index, macht jede Abfrage einen vollständigen Tabellenscan. Mach in MySQL die langsamen Abfragen sichtbar:
-- in my.cnf: Slow Query Log
[mysqld]
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 1        # Abfragen über 1 Sekunde erfassen

Siehst du eine wiederkehrende Abfrage im Log, prüfe ihren Plan mit EXPLAIN; zeigt er type: ALL, füge einen Index auf dieser Spalte hinzu. Nutzt du InnoDB, reduziert das Setzen von innodb_buffer_pool_size auf 50-70% des Server-RAM spürbar die Aussetzer durch Disk-I/O.

Netzwerk-Stack und Verbindungseinstellungen

Das Spiel sendet kleine Echtzeitpakete, daher sind die Kernel-Netzwerkparameter und die Firewall wichtig. Unter Linux kann eine volle Connection-Tracking-Tabelle (conntrack) dazu führen, dass neue Verbindungen abgelehnt werden und plötzliche Lag-Wellen entstehen:

sysctl net.netfilter.nf_conntrack_count   # aktuelle Anzahl der Einträge
sysctl net.netfilter.nf_conntrack_max     # Obergrenze
# bist du nahe am Limit, erhöhe es dauerhaft (/etc/sysctl.conf):
# net.netfilter.nf_conntrack_max = 262144

Eine DDoS-Schutzschicht oder eine falsch konfigurierte iptables-Regel kann ebenfalls legitime Spielpakete verzögern. Prüfe Regeln, die den Spielport rate-limiten; ein falsches Filtern des UDP/TCP-Mix führt zu stillen Paketverlusten.

Client-Seite: Lag oder niedrige FPS?

Manche "Lag"-Meldungen haben nichts mit dem Server zu tun. Ruckelt der Bildschirm des Spielers, der Ping ist aber niedrig, dann ist das Problem die FPS. Du kannst den Spieler das schnell prüfen lassen:

  • Den randlosen Fenstermodus statt Vollbild ausprobieren.
  • Den Grafiktreiber aktualisieren und das Spiel als Administrator ausführen.
  • Sinkende FPS in überfüllten Bereichen (Markt, Boss) sind normal; die Lösung ist eine Client-Einstellung, nicht der Server.

Die Diagnoseregel ist einfach: niedriger Ping + ruckelndes Bild = Client/FPS, hoher oder springender Ping = Netzwerk, alle frieren gleichzeitig ein = Server.

Dauerhaftes Monitoring einrichten

Den Lag einmal zu beheben reicht nicht; du musst ihn sofort sehen, wenn er zurückkehrt. Schon ein einfaches Log, das CPU, RAM und Spielerzahl über die Zeit verfolgt, zahlt sich aus. Als leichtgewichtige Option kannst du Netdata installieren oder mit einem Cron-Job pro Minute eine Messung nehmen:

* * * * * uptime >> /var/log/load.log
# wann erreicht die Load-Average ihren Höhepunkt? deckt sich das mit dem Andrang?

Diese Daten verwandeln vage Beschwerden wie "alle laggen um 21 Uhr" in ein messbares Muster und helfen dir, den echten Engpass zu finden.

Häufige Fragen

Mein Ping ist niedrig, aber das Spiel ruckelt trotzdem, warum?

Ein niedriger Ping zeigt, dass der Netzwerkpfad schnell ist, garantiert aber nicht, dass der Server Befehle rechtzeitig verarbeitet. 100% CPU auf einem einzelnen Kern oder langsame Datenbankabfragen lassen das Spiel "schwer" wirken, selbst bei niedrigem Ping. Prüfe die Serverseite mit htop und dem Slow Query Log.

Muss ich meinen Server an einen näheren Standort verlegen?

Sitzt die große Mehrheit deiner Spieler geografisch weit vom Server entfernt, ja — keine Software-Einstellung kann die durch physische Entfernung verursachte Latenz vollständig entfernen. Miss zuerst den echten Ping mit mtr; ist er dauerhaft hoch, ist ein näheres Rechenzentrum die endgültigste Lösung.

Was verursacht plötzliche Lag-Spitzen?

Die häufigsten Ursachen: eine volle conntrack-Tabelle, ein periodischer schwerer Cron-/Backup-Job oder überfüllte Events, die zu bestimmten Stunden starten. Gleiche die Lag-Zeit mit der Spitze in deinem Load-Log ab, um den Auslöser zu finden.

Du findest die Ursache des Lags auf deinem Server nicht? Ich kann dir helfen, Netzwerk-, Kernel- und Datenbankseite gemeinsam zu diagnostizieren und ein dauerhaftes Performance-Setup zu erstellen — nimm Kontakt mit mir auf.

Bu kategorideki tüm yazılar →

Devamı için