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

Game-Lag-Whitepaper › L13 Serverarchitektur und Betrieb

Uhrenabweichung zwischen Servern Clock skew between servers

Ursachen-ID in-clock-skew · Hauptzuständig Server-Infrastruktur (Infrastrukturteam) · Beteiligt Server-Entwicklung (Entwicklungsteam)

In der interaktiven Fassung mit Grafiken und Experimenten öffnen →

Gehen die Uhren der Server leicht unterschiedlich, werden Cooldowns, Buffs und Eventstarts auf jedem Server etwas anders bewertet.

Warum Uhr eines Servers ohne laufende Zeitsynchronisation weicht um mehrere hundert ms bis einige Sekunden von den anderen Servern ab → Folge Werden absolute Zeitpunkte wie das Ende eines Buffs zwischen Servern übergeben, stimmen die Entscheidungen nicht mehr überein → Auf dem Bildschirm Nach einem Wechsel ist der Buff weg oder der Cooldown beginnt von vorn

Symptome
Verschluckte Aktion / Rollback
Faktoren
Latenz
Wer ist betroffen
Nur ich
Wann
Beim Bewegen oder Zonenwechsel
Zuständigkeit
Hauptzuständig Server-Infrastruktur (Infrastrukturteam) · Beteiligt Server-Entwicklung (Entwicklungsteam)
Aufgaben Entwicklungsteam
Zwischen Servern Restzeiten übergeben (keine absoluten Zeitpunkte).
Aufgaben Infrastrukturteam
Zeitsynchronisation (NTP, chrony) überwachen, Alarm bei Uhrenabweichung zwischen Servern.
Größenordnungen
Läuft die Zeitsynchronisation (NTP, chrony) normal, liegen Server im selben Rechenzentrum meist innerhalb weniger ms. Stoppt die Synchronisation oder steht ein virtueller Server lange still und läuft dann weiter, wächst die Abweichung auf mehrere hundert ms bis einige Sekunden.
Im Graphen
Langsamer Anstieg · Uhrenoffset pro Server
Wo nachsehen
Für jeden Server System time (Abweichung zwischen Systemuhr und NTP-Zeit), Last offset und Ref time (Zeitpunkt, zu dem zuletzt ein Messwert der Zeitquelle übernommen wurde) aus chronyc tracking sammeln und vergleichen
Spricht dafür
Offset des betroffenen Servers weicht um mehrere hundert ms oder mehr von den anderen ab, oder Ref time steht schon lange still, und die Abweichungen treten nur bei Wechseln von oder zu diesem Server auf
Spricht dagegen
Offset aller Server innerhalb weniger ms: eher Zeitberechnung im Spielcode oder „Fehler bei der Uhrensynchronisation“ im Client
Prüfmittel
Mit Infrastruktur-Tools prüfbar (ohne Spielcode)
Mehr dazu
Springt die Uhr eines einzelnen Servers auf einmal vor oder zurück, behandelt das die Ursache „Sprung der Systemuhr (NTP-Step)“ in der Schicht Server-OS.

Quellen

  1. RFC 5905: Network Time Protocol Version 4: Protocol and Algorithms Specification IETF
    NTP-Clients in einem schnellen LAN liegen meist innerhalb weniger hundert µs
  2. chrony – Frequently Asked Questions chrony
    Die Drift einer normalen Computeruhr liegt unter 100 ppm, bei virtuellen Maschinen kann sie größer sein. Eine pausierte und fortgesetzte VM kann eine falsche Uhrzeit haben und eine Step-Korrektur brauchen
  3. clock_gettime(2) — Linux manual page Linux man-pages
    CLOCK_REALTIME kann durch manuelle Änderung oder NTP-Korrektur sprunghaft verstellt werden, CLOCK_MONOTONIC ist von solchen Sprüngen nicht betroffen
  4. chronyc(1) chrony
    System time (Abweichung zwischen NTP-Zeit und Systemuhr), Last offset (bei der letzten Korrektur geschätzter Offset), Ref time (Zeitpunkt, zu dem der letzte Messwert der Zeitquelle übernommen wurde) aus chronyc tracking

Verwandte Ursachen

Gleiche Schicht: L13 Serverarchitektur und Betrieb

Ursachen aus anderen Schichten mit demselben Symptom (Verschluckte Aktion / Rollback)

Karte in der interaktiven Fassung mit Grafiken und Experimenten ansehen