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

Game-Lag-Whitepaper › L10 Arbeitsspeicher

Cache-Miss CPU cache misses

Ursachen-ID mem-cache-miss · Hauptzuständig Server-Entwicklung (Entwicklungsteam)

In der interaktiven Fassung mit Grafiken und Experimenten öffnen →

Liegen Daten verstreut im Speicher, muss die CPU jedes Mal bis zum langsamen RAM gehen und warten.

Warum Objekte über Zeiger verstreut, Zugriff ohne feste Reihenfolge → Folge Daten nicht im CPU-Cache, also jedes Mal Lesen aus dem RAM (rund 100-mal langsamer) → Auf dem Bildschirm Gleiche Arbeit kostet ein Vielfaches an Tick-Zeit, im schlimmsten Fall Zeitlupe

Symptome
Zeitlupe
Faktoren
Stillstand
Wer ist betroffen
Ganzer Server
Wann
Immer, Bei großem Andrang
Zuständigkeit
Hauptzuständig Server-Entwicklung (Entwicklungsteam)
Aufgaben Entwicklungsteam
Häufig gemeinsam genutzte Daten zusammenhängend im Speicher anordnen (datenorientiertes Design).
Im Graphen
Von Anfang an dauerhaft hoch · Tick-Zeit, CPU-Auslastung
Wo nachsehen
perf stat -d -p PID an den Spielserverprozess hängen, Instruktionen pro Takt (insn per cycle) sowie L1- und LLC-Cache-Misses messen und zusammen mit Tick-Zeit und CPU-Auslastung auswerten
Spricht dafür
CPU dauerhaft ausgelastet, aber insn per cycle niedrig und viele LLC-Misses. Bestätigt, wenn ein Build mit geändertem Datenlayout die Tick-Zeit bei gleicher Spielerzahl deutlich senkt
Spricht dagegen
CPU-Auslastung niedrig, Ticks trotzdem langsam: Ursache, die außerhalb der CPU wartet, etwa Locks oder I/O-Wartezeiten
Prüfmittel
Mit Infrastruktur-Tools prüfbar (ohne Spielcode)

Quellen

  1. Designs, Lessons and Advice from Building Large Distributed Systems (LADIS 2009 keynote) Google
    L1-Cache 0,5 ns, L2-Cache 7 ns, Hauptspeicher 100 ns (Stand 2009): Ein Zugriff auf den RAM ist ein bis zwei Größenordnungen langsamer als auf den Cache
  2. perf-stat(1) — Linux manual page perf
    -p zählt Hardware-Events eines laufenden Prozesses und zeigt insn per cycle, -d ergänzt Events der L1- und LLC-Datencaches

Verwandte Ursachen

Gleiche Schicht: L10 Arbeitsspeicher

Ursachen aus anderen Schichten mit demselben Symptom (Zeitlupe)

Karte in der interaktiven Fassung mit Grafiken und Experimenten ansehen