한국어English日本語简体中文繁體中文DeutschไทยTiếng ViệtРусскийPortuguês (Brasil)EspañolBahasa Indonesia

Game-Lag-Whitepaper › L9 Spielprozess auf dem Server

Rückstau in der Message-Queue Mailbox / job queue backlog

Ursachen-ID sp-queue · Hauptzuständig Server-Entwicklung (Entwicklungsteam)

In der interaktiven Fassung mit Grafiken und Experimenten öffnen →

Kommen Anfragen schneller herein, als sie verarbeitet werden, stauen sie sich in der Warteschlange. Spätere Anfragen werden dann erst nach einigen Sekunden verarbeitet oder verworfen.

Warum Anfragen treffen schneller ein, als sie verarbeitet werden → Folge Warteschlange wird länger, über dem Limit wird verworfen → Auf dem Bildschirm Skills und Handel reagieren verzögert oder werden verschluckt

Symptome
Input-Lag, Verschluckte Aktion / Rollback
Faktoren
Latenz, Paketverlust
Wer ist betroffen
Bestimmter Ort oder Kanal, Nur eine bestimmte Funktion
Wann
Bei großem Andrang
Zuständigkeit
Hauptzuständig Server-Entwicklung (Entwicklungsteam)
Aufgaben Entwicklungsteam
Länge der Warteschlange überwachen, Richtlinie zum bevorzugten Verwerfen alter Anfragen, Verarbeitung parallelisieren.
Im Graphen
Plateau am Limit · Queue-Länge und Alter der ältesten Nachricht, Verarbeitungen pro Sekunde
Wo nachsehen
Vom Server erfasste Länge pro Queue, Alter der ältesten Nachricht sowie eingegangene, verarbeitete und verworfene Nachrichten pro Sekunde prüfen. Ohne Metriken im Code mit ss (oder netstat) Recv-Q des Spiel-Sockets prüfen (vom Kernel empfangene, vom Prozess noch nicht gelesene Datenmenge)
Spricht dafür
Solange mehr eingeht als verarbeitet wird, stagniert die Verarbeitungsrate auf einem festen Wert, während Queue-Länge, Alter und verworfene Nachrichten stetig steigen
Spricht dagegen
Queue kurz und Nachrichten jung, Reaktion trotzdem verzögert: eher Latenz der Leitung oder Verzögerung des Ticks selbst
Prüfmittel
Logs oder Metriken aus Spielserver bzw. Client nötig
Reale Fälle
CCP Games 2014: EVE Online: Serverüberlast in der großen Flottenschlacht um HED-GP

Quellen

  1. Avoiding insurmountable queue backlogs AWS
    Amazon Builders' Library. Rückstau über das Alter wartender Nachrichten überwachen, Echtzeitsysteme verarbeiten neue Daten zuerst (annähernd LIFO), alte Nachrichten werden teils verworfen
  2. Site Reliability Engineering, Chapter 22: Addressing Cascading Failures Google
    Kommen Anfragen schneller, als sie verarbeitet werden, füllt sich die Queue und die Latenz steigt, LIFO oder CoDel anstelle von FIFO entfernen alte, bereits nutzlose Anfragen
  3. ss(8) — Linux manual page iproute2
    Werkzeug für Socket-Statistiken (ähnliche Informationen wie netstat), -p zeigt den Prozess, der den Socket nutzt
  4. netstat(8) — Linux manual page net-tools
    Recv-Q: Anzahl der Bytes auf einem verbundenen Socket, die das Anwenderprogramm noch nicht abgeholt hat

Verwandte Ursachen

Gleiche Schicht: L9 Spielprozess auf dem Server

Ursachen aus anderen Schichten mit demselben Symptom (Input-Lag)

Karte in der interaktiven Fassung mit Grafiken und Experimenten ansehen