Zum Hauptinhalt springen

ZFS L2ARC: Wann er sinnvoll ist und wie man ihn bewertet (Teil 2)

·
Wim Bonis
Storage ZFS Performance
Autor
Stylite AG
Spezialisten in ZFS storage solutions, security. Docker containerization for enterprise environments.
Inhaltsverzeichnis

Header-Bild

L2ARC: Cache-Extension mit Tücken
#

Der L2ARC erweitert den RAM-basierten ARC auf Flash-Storage (NVMe/SSD). Kritisch: L2ARC ist ein Read-Only-Cache für eviktierte ARC-Blöcke. Neue Writes landen nie direkt im L2ARC – nur Daten, die aus dem ARC verdrängt wurden und noch im Dataset existieren.

Die 80-Byte-Regel: RAM-Overhead
#

Jeder Block im L2ARC benötigt einen Header im ARC-RAM. Bei ZFS-Blocksize 128K:

1 TB L2ARC = 8.388.608 Blöcke (128K)
8.388.608 * 80 Bytes = 671 MB RAM-Overhead

Praxis-Beispiel TrueNAS:

  • System: 64 GB RAM, 50 GB für ARC verfügbar
  • L2ARC: 2x 1TB NVMe (2 TB total)
  • RAM-Overhead: ~1.3 GB
  • Effektiver ARC: 48.7 GB (nicht 50 GB!)

Bei komprimiertem Dataset (compression=lz4, ratio 2:1) speichert L2ARC compressed Data → doppelter RAM-Overhead.

# L2ARC Header Status prüfen
cat /proc/spl/kstat/zfs/arcstats | grep l2_hdr_size

L2ARC Tuning: Write-Rate kontrollieren
#

Problem: Aggressive L2ARC-Feeds können SSDs vorzeitig verschleißen!

Wann L2ARC Sinn macht
#

✅ Ideal:

  • Working Set 1.5–3x größer als RAM
  • Read-Heavy Workloads (>80% Reads)
  • VM-Storage mit häufig genutzten VMDKs
  • Media-Server (Plex, Jellyfin)

❌ Problematisch:

  • Working Set > 10x RAM (zu viele Misses)
  • Write-Heavy Loads (L2ARC hilft nur Reads)
  • Limitiertes RAM (< 32 GB)
  • Sequential Streaming (kein Re-Read)

L2ARC Hit-Ratio: Realistische Erwartungen
#

Anders als beim ARC sind beim L2ARC niedrigere Hit-Ratios normal und trotzdem wertvoll.

Bewertung:

  • l2hit% > 25%: Excellent – 25%+ weniger Disk-Reads
  • l2hit% 10–25%: Gut – spürbar weniger Disk-I/O
  • l2hit% < 10%: Fragwürdig – Working Set zu groß/Write-Heavy
arcstat -f time,read,hit%,l2hit%,l2size 1

Schon 20–30% L2ARC-Hit-Ratio rechtfertigt das Device – L2ARC ist ein Disk-I/O Reducer, kein Hit-Booster.

arc_summary (L2ARC-Breakdown)
#

arc_summary -s l2arc

Beispielauszug:

L2ARC size (adaptive):                                  1015.0 GiB
        Compressed:                                    58.3 %  591.9 GiB
        Header size:                                    0.1 %  792.0 MiB
        MFU allocated size:                            82.8 %  490.2 GiB
        MRU allocated size:                            16.8 %   99.2 GiB
        Prefetch allocated size:                        0.5 %    2.7 GiB
        Data (buffer content) allocated size:          99.1 %  586.8 GiB
        Metadata (buffer content) allocated size:       0.9 %    5.3 GiB

Schlüsse (praxisnah)
#

  • Header size ≈ RAM‑Overhead – bei großem L2ARC im RAM mitplanen.
  • MFU dominiert: Wiederholte Hot‑Data profitieren; MRU hoch: wechselnde Daten → geringerer Nutzen.
  • l2hit% 20–30% ist realistisch und oft wirtschaftlich; <10% → Nutzen hinterfragen.

Weiterlesen
#

Verwandte Artikel

ZFS ARC mit Prefetch: Funktionsweise und Tuning (Teil 1)
Wim Bonis
Storage ZFS Performance
ZFS Performance-Tuning: ARC, L2ARC und SLOG (Übersicht)
Wim Bonis
Storage ZFS Performance
Die richtige ZFS Pool-Konfiguration wählen: Ein Leitfaden für Enterprise-Storage
Wim Bonis
Storage ZFS Performance
TrueNAS Goldeye 25.10 – Einfachere Deployments und Terabit-Performance
Wim Bonis
Storage TrueNAS ZFS Performance Enterprise AI KI Virtualisierung
ZFS-Storage Vergleich 2025: TrueNAS Scale vs Core, Open-E, Ubuntu, FreeBSD & 8 Alternativen
Wim Bonis
Storage ZFS NAS TrueNAS Open-E Vergleich Enterprise HA-Cluster Metro-Cluster
OpenZFS Virtualisierung: Storage-Lösungen für moderne Infrastrukturen
Wim Bonis
Storage Tools ZFS
ZFS JBOD Tools: Effiziente Verwaltung von Storage-Systemen
Wim Bonis
Storage Tools ZFS
Ransomware: Geschichte, Schutzmaßnahmen und ZFS als Verteidigungslinie
Wim Bonis
Storage Security ZFS
TrueNAS Fans aufgepasst: Neue Features und Updates
Wim Bonis
Storage News ZFS