linux-kernel-advanced virtualization kvm memory ept npt slat performance advanced

SLAT: EPT & NPT Memory Virtualization (Artikel 405)

Tiefgehende Analyse der Second Level Address Translation (SLAT). Erfahren Sie, wie EPT (Intel) und NPT (AMD) den RAM-Zugriff in virtuellen Maschinen auf Hardware-Ebene beschleunigen.

# SLAT Masterclass: Die Mechanik der Speicher-Virtualisierung

TL;DR / Management Summary Jede VM hat ihre eigene Vorstellung vom Arbeitsspeicher. Doch am Ende muss jede Gast-Adresse auf einen echten physischen RAM-Riegel des Hosts abgebildet werden. Früher musste der Kernel dies mühsam in Software tun (Shadow Page Tables). Heute übernimmt die CPU diese Arbeit mit SLAT (Second Level Address Translation) – bei Intel EPT (Extended Page Tables) und bei AMD NPT (Nested Page Tables) genannt. Ein Senior Admin muss verstehen, wie diese Hardware-Beschleunigung funktioniert, um Speicher-Engpässe in großen VM-Clustern zu beheben.


# 1. Einführung & Architektur

Die zwei Ebenen der Wahrheit.

Normales Linux nutzt eine Seitentabelle (Page Table), um Virtual Memory auf Physical Memory zu mappen. Eine VM fügt eine weitere Ebene hinzu.

# Der Adress-Pfad (Mermaid)

graph LR
    A[Guest App: Virtual Addr] -->|Table 1: Gast OS| B[Guest Physical Addr]
    B -->|Table 2: SLAT / EPT| C[Host Physical Addr: RAM]
    subgraph "Hardware Acceleration (SLAT)"
        B
        C
    end
    D[CPU TLB Cache] --- B
    D --- C
  • GVA (Guest Virtual Address): Adresse innerhalb des Programms in der VM.
  • GPA (Guest Physical Address): Das, was die VM für “echten RAM” hält.
  • HPA (Host Physical Address): Die echte Zelle auf dem RAM-Riegel.

# 2. EPT vs. Shadow Page Tables

Warum Hardware gewinnt.

  • Shadow Page Tables (Legacy): Der Hypervisor (KVM) muss jede Änderung im Gast-RAM abfangen und eine “Schatten-Tabelle” manuell synchronisieren. Dies führt zu massiven VM-Exits (Artikel 403) und kostet bis zu 30% Performance.
  • EPT / NPT (Hardware): Die CPU-MMU (Memory Management Unit) kennt beide Tabellen und führt den “Page Walk” über beide Schichten in Silizium aus.

# 3. Performance-Tuning: Huge Pages & EPT

Den Index verkleinern.

Das größte Problem bei SLAT ist der “Page Walk”. Der Prozessor muss viele Tabellen-Einträge lesen, um die finale Adresse zu finden.

  • Lösung: Nutzen Sie Huge Pages (Artikel 388). Durch 2MB Seiten wird die Anzahl der Einträge in beiden Tabellen drastisch reduziert. Der SLAT-Mechanismus muss weniger “laufen”.

# 4. Day-2 Operations: Support-Check

Kann meine CPU das?

In modernen RZs ist SLAT Standard, aber bei Cloud-Instanzen oder sehr alten Servern lohnt ein Check.

# Prüfung via CLI

# Intel (Extended Page Tables)
grep ept /proc/cpuinfo

# AMD (Nested Page Tables)
grep npt /proc/cpuinfo

# 5. Troubleshooting & “War Stories”

Wenn der Speicher-Bus glüht.

# Story 1: “Der TLB-Trash-Effekt”

Symptom: Mehrere VMs auf einem Host werden gleichzeitig extrem langsam, obwohl die CPU-Last im Gast niedrig ist. Der Host zeigt hohe Last im Kernel-Bereich. Ursache: Zu viele kleine VMs nutzen extrem viel RAM. Der TLB (Translation Lookaside Buffer) der CPU reicht nicht aus, um die EPT-Einträge für alle VMs zu cachen. Die CPU verbringt ihre Zeit mit “Page Table Walking”. Lösung: Reduzieren Sie die VM-Dichte oder nutzen Sie Huge Pages, um die TLB-Effizienz zu steigern.

# Story 2: “Das Nested-Virtualisierungs-Loch”

Symptom: Eine VM in einer VM (L2 Guest) ist unbrauchbar langsam (10% der Speed). Ursache: Die Hardware-Beschleunigung (EPT) wird oft nicht an die L2-VM durchgereicht. Der L1-Hypervisor muss wieder auf die langsamen Shadow Page Tables ausweichen. Lösung: Aktivieren Sie EPT-Passthrough (nested=1). Aber Vorsicht: Jede zusätzliche Ebene erhöht die Latenz beim Adress-Lookup exponentiell.


# 6. Fazit & Empfehlung

  • Pflicht: Kaufen Sie niemals Server-Hardware ohne EPT/NPT Support.
  • Best Practice: Kombinieren Sie EPT mit Transparent Huge Pages (Artikel 388) für allgemeine Workloads und Explicit Huge Pages für Datenbanken.
  • Wissen: SLAT ist der Grund, warum wir heute Datenbanken in VMs betreiben können, ohne Angst vor Speicher-Latenzen zu haben.

# Anhang: Cheatsheet

Begriff Bedeutung
SLAT Second Level Address Translation (Oberbegriff)
EPT Intel Implementierung
NPT / RVI AMD Implementierung
TLB Cache für Adress-Übersetzungen
Page Walk Suche in den Tabellen (langsam)
Shadow Tables Software-Emulation (Legacy)
Check (Intel) grep vmx /proc/cpuinfo
Check (AMD) grep svm /proc/cpuinfo
Stats perf stat -e dTLB-load-misses ...