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

Game-Lag-Whitepaper › L6 Netzwerkkarte des Servers

Zu kleiner Ringpuffer RX ring buffer overflow

Ursachen-ID nic-ring · Hauptzuständig Server-Infrastruktur (Infrastrukturteam)

In der interaktiven Fassung mit Grafiken und Experimenten öffnen →

Ist der Ringpuffer klein, in dem die NIC Pakete kurz ablegt, läuft er bei kurzen Lastspitzen über, und Pakete werden verworfen.

Warum Ringpuffer steht auf dem kleinen Standardwert (je nach Treiber 256–2.048 Slots) → Folge Bei einem Burst läuft der Puffer über, bevor die CPU die Pakete abholt → Auf dem Bildschirm Paketverlust nur im Moment des Bursts (Teleportieren, verschluckte Skills). In den Logs des Spielservers keine Spur

Symptome
Teleportieren, Verschluckte Aktion / Rollback
Faktoren
Paketverlust
Wer ist betroffen
Ganzer Server
Wann
Bei großem Andrang
Zuständigkeit
Hauptzuständig Server-Infrastruktur (Infrastrukturteam)
Aufgaben Infrastrukturteam
Ringpuffer vergrößern (ethtool -G), Drop-Zähler überwachen (z. B. rx_missed_errors in ethtool -S, Namen je nach Treiber verschieden).
Größenordnungen
Bei 1 Million Paketen pro Sekunde sind 1.024 Slots in etwa 1 ms voll. Kommt die CPU in dieser Zeit nur ein einziges Mal zu spät, läuft der Puffer über. Die meisten NICs lassen sich auf mehrere tausend Slots vergrößern.
Im Graphen
Vereinzelte Spitzen ohne Muster · Empfangsdrop-Zähler der NIC
Wo nachsehen
Empfangsdrop-Zähler in ethtool -S (rx_missed_errors, rx_fifo_errors usw., Namen je nach Treiber verschieden) und missed in ip -s -s link in kurzen Intervallen erfassen, mit ethtool -g aktuelle und maximale Ringgröße prüfen
Spricht dafür
Im Moment des Bursts steigen die Drop-Zähler, und die aktuelle Ringgröße liegt weit unter dem Maximum. Mit größerem Ring sinken die Drops
Spricht dagegen
Drop-Zähler unverändert, trotzdem Paketverlust: nächste Stufe im Kernel („Zu kleine Socket-Puffer im Kernel“) oder Netzwerkabschnitt. %soft eines Kerns bei 100 %: „NIC-Interrupts auf nur einem Kern“
Prüfmittel
Mit Infrastruktur-Tools prüfbar (ohne Spielcode)

Quellen

  1. Linux Base Driver for Intel(R) Ethernet Network Connection (e1000) Linux kernel
    e1000: standardmäßig 256 Empfangsdeskriptoren (Ring-Slots), auf bis zu 4.096 erweiterbar
  2. drivers/net/ethernet/intel/ice/ice.h (Linux v6.12) Linux kernel
    ice-Treiber: standardmäßig 2.048 Empfangsdeskriptoren, maximal 8.160
  3. Interface statistics Linux kernel
    Pakete, die das Gerät mangels Puffer verwirft, werden als rx_missed_errors gezählt, treiberspezifische Statistiken mit ethtool -S abrufen
  4. ethtool(8) — Linux manual page ethtool
    -g zeigt die Ringgröße (aktuell und maximal), -G ändert sie, -S zeigt treiberspezifische Statistiken

Verwandte Ursachen

Gleiche Schicht: L6 Netzwerkkarte des Servers

Ursachen aus anderen Schichten mit demselben Symptom (Teleportieren)

Karte in der interaktiven Fassung mit Grafiken und Experimenten ansehen