1. Überblick
- Zusammenfassung von Definition, Diagnose, Gegenmaßnahmen und Präventionsstrategien für Thrashing im Cache (ARC) des ZFS-Dateisystems
2. Definition von ZFS-ARC-Thrashing
- Konzept: Durch fortlaufend fehlschlagende Cache-Hits kommt es zu häufigem Austausch von Cache-Einträgen (Eviction), wodurch sich die Systemleistung stattdessen verschlechtert
- Auswirkungen: In Hochleistungs-I/O-Umgebungen (z. B. Datenbankservern) kann dies schwere Serviceausfälle verursachen
3. Wichtige Diagnosesymptome
- CPU-
iowait liegt dauerhaft über 20 %
- Die CPU-Auslastung im
system mode steigt im Vergleich zum Normalzustand
- Sinkende Cache-Trefferrate (Hit rate) (Vergleich mit normalen Betriebsdaten erforderlich)
- Kernsymptom: Wenn die CPU-Auslastung der Kernel-Threads
arc_prune und arc_evict über 90 % liegt, ist Thrashing sicher
4. Sofortige Gegenmaßnahmen
- Maßnahme: Linux-Dateisystem-Cache manuell leeren
- Befehl:
echo 3 > /proc/sys/vm/drop_caches
- Wirkung: Entfernt gemeinsam den Page Cache und Slab-Objekte
- Merkmale:
- Noch nicht auf die Festplatte geschriebene Daten (dirty item) bleiben erhalten, daher kein Datenverlust (nicht destruktiv)
- Unmittelbar nach der Ausführung kommt es vorübergehend zu Leistungseinbußen, bis der Cache wieder gefüllt ist
5. Grundlegende Prävention
- Ursache: Der dem System-Workload zugewiesene ARC-Cache ist zu klein
- ARC-Größe (
zfs_arc_max):
- Der Standardwert ist bereits sehr groß und beträgt standardmäßig 1/2 des Systemspeichers (unter Linux)
- Eine Erhöhung ist nicht ohne Weiteres möglich, da dies Speicherkonkurrenz mit anderen Anwendungen verursachen kann
- Lösungsansätze:
- Wenn andere Anwendungen viel Speicher nutzen, den Wert
zfs_arc_max reduzieren, um Konkurrenz zu vermeiden
- Zur grundlegenden Behebung des Problems ist eine Erweiterung des physischen Speichers (Scale-up) die sicherste Methode
Noch keine Kommentare.